Форум » Выполнение и анализ алгоритмов для исполнителей » Задание 5 №296 (не сходится ответ) » Ответить

Задание 5 №296 (не сходится ответ)

st.affeev: Здравствуйте! Очевидно, что для получения наименьшего номера нужно изменять последовательно цифры с конца исходного. Для исходного номера сумма цифр на четных позициях равна 24, сумма преобразованных цифр на нечетных позициях - 56. Если разница между суммами для нового номера и для исходного кратна 10, то номер корректный. На ум приходят такие последние 4 цифры номера - 1139. Сумма цифр на четных позициях тогда равна 24 - 1 + 9 = 32, на нечетных 56 - 2*2 + 3*2 = 58. Сумма 32 + 58 = 90 кратна 10. Такой же ответ дает программное решение: [pre2] def f1(n): return sum(map(int, list(str(n)[::-2]))) def f2(n): return sum(map(lambda x: int(x) * 2, list(str(n)[-2::-2]))) flag = True n = 1234_5678_9101_1121 while flag: n += 1 if (f1(n) + f2(n)) % 10 ==0: print(n) break [/pre2] Таким образом,ответ - 9101 1139, однако это не сходится с число в ответах (9101 1128).

Ответов - 1

vladimirKazan: Кажется, Вы пропустили тот момент, что цифры на нечётных местах увеличиваются в два раза и, если при этом получается двузначное число, то его цифры складываются.



полная версия страницы