Gioco di numeri aggiunti
Scrivi una funzione / programma che accetta 2 parametri interi, parametri interi o variabili intere , un numero iniziale e un conteggio massimo di iterazioni. Il codice dovrebbe eseguire il seguente esempio di gioco per costruire un nuovo numero e ripetere fino a quando il numero è a una sola cifra. per esempio.
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
Fondamentalmente, prendendo ogni singola cifra e aggiungendola al suo vicino, quindi aggiungendo anche il risultato della prossima aggiunta.
Il conteggio massimo di iterazioni serve a salvaguardare infiniti loop e, quando viene raggiunto il numero massimo, il codice dovrebbe eseguire il dump degli ultimi 5 passaggi numerici. Lo stesso risultato dovrebbe verificarsi al termine raggiungendo una singola cifra. Se si verificano meno di 5 passaggi, emettere solo i numeri validi.
L'output dovrebbe apparire come ( Step: Number) inclusi gli ultimi 5 passaggi dei passaggi finiti o terminati:
func(3541, 50) produrrebbe questo esatto formato di output:
6: 1411
7: 552
8: 107
9: 17
10: 8
func(3541, 5) produrrebbe:
1: 895
2: 1714
3: 885
4: 1613
5: 774
L'intero calcolo è:
1: 895
2: 1714
3: 885
4: 1613
5: 774
6: 1411
7: 552
8: 107
9: 17
10: 8
Se ci sono meno di 5 passaggi, basta stampare quei passaggi.
Usa solo librerie integrate, i parametri possono essere ovunque (qualunque sia la più semplice per la tua lingua preferita). Nessun limite per le dimensioni massime dei numeri interi e, in caso di overflow, lasciare che si blocchi.
Dato che questo non è troppo difficile da un punto di vista enigmistico, darò fino a domenica 25, 20:00 (UTC + 8) affinché gli invii vengano considerati per la risposta accettata, a quel punto il più breve di qualsiasi lingua sarà il vincitore.
MODIFICARE:
Congratulazioni a Howard, vincendo con una risposta GolfScript 48 .
Menzione speciale al 2 ° posto marinus con una risposta 66 APL .
Il mio preferito personale (essendo di parte verso JavaScript) era la risposta di core1024 .
func(3541, 5)dovrebbe stampare 5 passaggi o 10?