Perché il numero 6174 è così interessante? Come definito da Wikipedia
- Prendi qualsiasi numero di quattro cifre, usando almeno due cifre diverse. (Sono consentiti zeri iniziali.)
- Disporre le cifre in ordine crescente e poi in ordine decrescente per ottenere due numeri di quattro cifre, aggiungendo zeri iniziali, se necessario.
- Sottrai il numero più piccolo dal numero più grande.
- Torna al passaggio 2.
Il processo sopra descritto, noto come routine di Kaprekar, raggiungerà sempre 6174 al massimo in 7 iterazioni. Una volta raggiunto 6174, il processo continuerà a produrlo.
Scrivi un programma che esegue la routine di Kaprekar su un dato numero di quattro cifre (vedi la definizione sopra) stampando ogni fase della routine.
Regole:
- Gli invii devono essere programmi completi.
- L'input deve essere letto dall'input standard. Il piping dall'eco è OK.
- L'input deve essere in forma numerica.
- È richiesta la stampa di zeri iniziali. (Vedi gli esempi di seguito.)
- L'ultima riga dovrebbe indicare quante iterazioni erano necessarie. La punteggiatura è obbligatoria.
Esempi:
> 2607
7620 - 0267 = 7353
7533 - 3357 = 4176
7641 - 1467 = 6174
Iterations: 3.
> 1211
2111 - 1112 = 0999
9990 - 0999 = 8991
9981 - 1899 = 8082
8820 - 0288 = 8532
8532 - 2358 = 6174
Iterations: 5.
> 6174
7641 - 1467 = 6174
Iterations: 1.
Qualsiasi linguaggio di programmazione è il benvenuto. Punti extra per quelli esoterici + una piccola taglia.
Aggiornamento 1 : esiste già una domanda simile .
Aggiornamento 2 : aggiunto esempio per 6174 come input. Grazie a Peter Taylor per l'avviso.