Предположим, что фальшивая монета легче подлинной. Разделим монеты на группы по 15 и одну монету отложим в сторону. Взвесим группы по 15. Если весы находятся в равновесии, то фальшивая монета отложена. Если же одна из чаш весов оказалась легче, то фальшивая монета там. 15 монет из легкой чаши снова разделим на 7, 7 и монета в стороне. Повторим взвешивание. Если фальшивая монета не найлена, то из более легкой чаши монетки разделим на 3, 3 и одну. Повторим взвешивание с лекгой чашей в четвертый раз. 1, 1 и монета в стороне. Фальшивка найдена не более чем за 4 взвешивания.
// PascalABC.NET 3.2, сборка 1344 от 22.11.2016 // Внимание! В более ранних версиях работа не гарантируется!
begin var m:=ReadInteger('Количество строк в массиве:'); var n:=ReadInteger('Количество столбцов в массиве:'); Writeln('Вводите элементы массива'); var a:=new integer[m,n]; for var i:=0 to m-1 do for var j:=0 to n-1 do Read(a[i,j]); Writeln('-'*20); foreach var c in a.Cols do Write(c.Sum,' ') end.
Пример Количество строк в массиве: 4 Количество столбцов в массиве: 3 Вводите элементы массива 1 6 -2 0 6 8 -3 6 1 4 6 -3
На экран будет выведено:
a +b = 9