Jeu de nombres ajoutés
Écrivez une fonction / programme qui prend 2 paramètres entiers paramètres entiers ou variables entières , un nombre de départ et un nombre d'itérations max. Le code doit exécuter l'exemple de jeu suivant pour construire un nouveau numéro et répéter jusqu'à ce que le numéro ne contienne qu'un seul chiffre. par exemple.
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
Fondamentalement, en prenant chaque chiffre individuel et en l'ajoutant à son voisin, puis en ajoutant le résultat de l'ajout suivant également.
Le nombre d'itérations max est de protéger les boucles infinies, et lorsque le max est atteint, le code devrait vider les 5 dernières étapes numériques. La même sortie devrait se produire à la fin en atteignant un seul chiffre. Si moins de 5 étapes se sont produites, ne sortez que les nombres valides.
La sortie doit apparaître comme ( Step: Number), y compris les 5 dernières étapes des étapes terminées ou terminées:
func(3541, 50) produirait ce format de sortie exact:
6: 1411
7: 552
8: 107
9: 17
10: 8
func(3541, 5) produirait:
1: 895
2: 1714
3: 885
4: 1613
5: 774
L'ensemble du calcul étant:
1: 895
2: 1714
3: 885
4: 1613
5: 774
6: 1411
7: 552
8: 107
9: 17
10: 8
S'il y a moins de 5 étapes, imprimez simplement ces étapes.
N'utilisez que des bibliothèques intégrées, les paramètres peuvent provenir de n'importe où (ce qui est le plus simple pour la langue de votre choix). Aucune limite sur la taille entière maximale, et s'il y a des débordements, laissez-le planter.
Étant donné que ce n'est pas trop difficile d'un point de vue de puzzle, je donnerai jusqu'au dimanche 25, 20h (UTC + 8) pour que les soumissions soient prises en compte pour la réponse acceptée, auquel cas la plus courte de toutes les langues sera gagnante.
ÉDITER:
Félicitations à Howard, gagnant avec une réponse 48 GolfScript .
Mention spéciale à la 2e place marinus avec une réponse 66 APL .
Mon préféré (étant biaisé vers JavaScript) était la réponse de core1024 .
func(3541, 5)censé imprimer 5 étapes ou 10?