Один малыш из детского сада услышал от старшей сестры о некоем действии с числами — сложении.
И как это часто бывает — он не до конца разобрался, как работает сложение. Например, не совсем понял, как произвести перенос разряда.
Теперь он хочет научить сложению остальных ребят и просит написать программу, которая поможет ему в качестве наглядного материала.
Формат ввода
В первой и второй строках записаны натуральные числа меньше 1000.
Формат вывода:
Одно число — результат сложения введённых чисел без учёта переносов.
Пример
Ввод
123
99
Вывод
112
Решение
После выполнения предыдущих задач разложение числа на отдельные цифры не составляет проблемы. Однако, здесь зачастую не замечают или не догадываются как устроено это самое “интересное сложение”. Но сути мы должны сложить единицы с единицами, десятки с десятками, а сотни с сотнями, но в случае если в любом из разрядов сумма цифр превысит 10, то надо оставить только последнюю цифру двузначной суммы. Сделать это можно с помощью оператора %.
Второе решение в ответ на два числа 10 и 1 выдаст в качестве ответа 011. Это связано не с алгоритмом, а с тем, как ответ готовится к выдаче. Тем не менее тестовая система Яндекса принимает этот алгоритм, что может означать или плохое покрытие задачи тестами, или то, что Яндекс намеренно приравнял ответ аналогичный 011 к 11.
Посмотреть код
Решение.
first = int(input())
second = int(input())
f1 = first % 10
f2 = first // 10 % 10
f3 = first // 100
s1 = second % 10
s2 = second // 10 % 10
s3 = second // 100
num = (f3 + s3) % 10 * 100 + (f2 + s2) % 10 * 10 + (f1 + s1) % 10
print(num)
Решение.
first = int(input())
second = int(input())
f3 = first % 10
first = first // 10
f2 = first % 10
first = first // 10
f1 = first % 10
s3 = second % 10
second = second // 10
s2 = second % 10
second = second // 10
s1 = second % 10
print(f'{(f1 + s1) % 10}{(f2 + s2) % 10}{(f3 + s3) % 10}')