Dołączona gra liczb
Napisz funkcję / program, który pobiera 2 parametry całkowite parametry całkowite lub zmienne całkowite , numer początkowy i maksymalną liczbę iteracji. Kod powinien wykonać następujący przykład gry, aby skonstruować nowy numer i powtarzać, aż liczba pozostanie pojedynczą cyfrą. na przykład.
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
Zasadniczo, biorąc każdą indywidualną cyfrę i dodając ją do sąsiada, a następnie dołączając wynik następnego dodawania.
Maksymalna liczba iteracji ma na celu ochronę nieskończonych pętli, a gdy maksimum zostanie osiągnięte, kod powinien zrzucić ostatnie 5 kroków liczbowych. Ten sam wynik powinien wystąpić po zakończeniu osiągania jednej cyfry. Jeśli wystąpiło mniej niż 5 kroków, wypisz tylko prawidłowe liczby.
Dane wyjściowe powinny wyglądać jak ( Step: Number), w tym ostatnie 5 kroków zakończonych lub zakończonych kroków:
func(3541, 50) utworzy ten dokładny format wyjściowy:
6: 1411
7: 552
8: 107
9: 17
10: 8
func(3541, 5) wyprodukowałby:
1: 895
2: 1714
3: 885
4: 1613
5: 774
Całe obliczenie to:
1: 895
2: 1714
3: 885
4: 1613
5: 774
6: 1411
7: 552
8: 107
9: 17
10: 8
Jeśli jest mniej niż 5 kroków, po prostu wydrukuj te kroki.
Używaj tylko wbudowanych bibliotek, parametry mogą pochodzić z dowolnego miejsca (co jest najłatwiejsze dla wybranego języka). Brak limitu maksymalnego rozmiaru liczby całkowitej, a jeśli występują przepełnienia, pozwól mu się zawiesić.
Biorąc pod uwagę, że nie jest to zbyt trudne z logicznego punktu widzenia, dam do niedzieli 25-tej, 20:00 (UTC + 8), aby wnioski zostały rozpatrzone pod kątem przyjętej odpowiedzi, w którym to momencie zwycięzcą będzie którykolwiek z najkrótszych języków.
EDYTOWAĆ:
Gratulacje dla Howarda, wygrywając z 48 GolfScript odpowiedź .
Wyróżnienie 2 miejsce marinus z 66 APL odpowiedź .
Moim osobistym ulubionym (nastawionym na JavaScript) była odpowiedź core1024 .
func(3541, 5)wydrukować 5 kroków czy 10?