Наконец-то что-то не про делители :)
Задача
Найдите первые десять цифр суммы следующих ста 50-значных чисел.
(Чисел очень много, все их сюда вставлять не буду, полностью можно посмотреть здесь: https://projecteuler.net/problem=13)
Решение
Здесь нам дают понять, что обычная арифметика не поможет, так как числа слишком большие. Что ж, напишем своё сложение в столбик.
Загоню данные в строковом виде в массив:
Затем, начиная с позиции в конце строки (pos = L), буду складывать по одной цифре из каждой строки. Все сложенные цифры накапливаются в переносе (carry).
После сложения младший разряд переноса становится цифрой финальной суммы, а перенос делится на 10, и готов к накоплению в следующем разряде.
В конце перенос всё ещё остаётся – сумма увеличилась на пару разрядов. Поэтому оставшийся перенос также поразрядно добавляется в итоговую сумму в дополнительные старшие разряды, которые были заранее зарезервированы.
После чего, начиная от текущего старшего разряда суммы и до 10 следующих, выводим их на печать.
Ссылка на онлайн-компилятор языка C с текстом программы
Вся подборка задач: