Иногда, когда мне очень скучно, мне нравится брать сумму целого ряда неотрицательных целых чисел. Я беру только сумму массивов длин, которые являются степенями двух. К сожалению, я часто делаю ошибки. К счастью, я слежу за своей работой следующим образом:
Я добавляю пары соседних номеров, пока не останется только один. Например:
6 + 18 + 9 + 6 + 6 + 3 + 8 + 10
= 24 + 15 + 9 + 18
= 39 + 27
= 66
Твоя работа - определить, сделал ли я где-нибудь ошибку. Вы можете либо передать ввод в вашу функцию, либо прочитать из стандартного входа. Вывод можно распечатать или вернуть.
Ввод: массив / список / и т. Д. неотрицательных целых чисел и, возможно, также длины этого массива, если ваш язык требует этого. Этот массив будет содержать все числа, читаемые слева направо, а затем сверху вниз. Например, приведенный выше массив станет:
[[6, 18, 9, 6, 6, 3, 8, 10], [24, 15, 9, 18], [39, 27], [66]]
или,
[6, 18, 9, 6, 6, 3, 8, 10, 24, 15, 9, 18, 39, 27, 66]
если вы предпочитаете.
Вывод: единственное логическое значение, представляющее, была ли допущена ошибка. Логическое значение может быть представлено с использованием любого отображения при условии, что все входные данные, в которых была допущена ошибка, возвращают / печатают идентичный результат, а все входные данные, которые не содержат ошибок, возвращают / печатают идентичный результат. Это само собой разумеется, но эти два выхода не могут быть одинаковыми.
Некоторые примеры правильных суммирований:
6
5+6
=11
3 + 2 + 4 + 5
= 5 + 9
= 14
[0, 1, 2, 3, 1, 5, 6]
[[1, 2, 4, 8], [3, 12], [15]]
Некоторые примеры неправильного суммирования:
5+4
=8
4 + 4 + 4 + 4
= 9 + 7
= 16
[[1, 2, 3, 4], [7, 3], [10]]
[3, 4, 5, 6, 7, 8, 9]
Имейте в виду, что я могу ошибаться и все равно получить правильный ответ. Если я сделаю ошибку, это никогда не приведет к дополнительному числу или отсутствующему числу в конечном массиве, только к неправильному номеру.
Стандартные лазейки запрещены. Самый короткий ответ на каждом языке - победитель. Старый ответ выиграет в случае ничьей. Я оставляю за собой право решать, что такое «тот же язык», но я скажу заранее, что баллы нельзя заработать как в Python 2, так и в Python 3.
[0,1,2,3,1,5,6]
недопустим, потому что «Ввод: массив / список / и т. Д. Натуральных чисел».