Игра с добавленными номерами
Напишите функцию / программу, которая принимает 2 целочисленных параметра, целочисленные параметры или целочисленные переменные , начальный номер и максимальное количество итераций. Код должен выполнить следующий пример игры, чтобы создать новое число, и повторять до тех пор, пока число не останется одной цифрой. например.
3 7 2 = (3 + 7) & (7 + 2) = 10 9
1 0 9 = (1 + 0) & (0 + 9) = 1 9
1 9 = (1 + 9) = 10
1 0 = (1 + 0) = 1
В основном, беря каждую отдельную цифру и добавляя ее к соседу, затем добавляя также результат следующего добавления.
Максимальный счетчик итераций предназначен для защиты бесконечных циклов, а когда достигнут максимум, код должен сбросить последние 5 числовых шагов. Тот же вывод должен произойти при завершении, достигнув одной цифры. Если произошло менее 5 шагов, выведите только действительные числа.
Вывод должен выглядеть как ( Step: Number), включая последние 5 шагов завершенных или завершенных шагов:
func(3541, 50) будет производить этот точный формат вывода:
6: 1411
7: 552
8: 107
9: 17
10: 8
func(3541, 5) будет производить:
1: 895
2: 1714
3: 885
4: 1613
5: 774
Весь расчет ведется:
1: 895
2: 1714
3: 885
4: 1613
5: 774
6: 1411
7: 552
8: 107
9: 17
10: 8
Если осталось менее 5 шагов, просто распечатайте эти шаги.
Используйте только встроенные библиотеки, параметры могут быть откуда угодно (что проще для вашего языка). Нет ограничений на максимальный целочисленный размер, и если есть переполнения, пусть происходит сбой.
Учитывая, что это не слишком сложно с точки зрения загадки, я предоставлю до 25-го воскресенья 20:00 (UTC + 8) для рассмотрения заявок на принятый ответ, после чего победителем будет самый короткий из всех языков.
РЕДАКТИРОВАТЬ:
Поздравляем Говарда, выигравшего с ответом 48 GolfScript .
Специальное упоминание 2-й место Маринус с ответом 66 APL .
Моим личным фаворитом (склонность к JavaScript) был ответ core1024 .
func(3541, 5)должен печатать 5 шагов или 10?