Penso che la congettura di Collatz sia già nota. Ma cosa succede se invertiamo le regole?
Inizia con un numero intero n> = 1.
Ripeti i seguenti passi:
Se n è pari , moltiplicalo per 3 e aggiungi 1.
Se n è dispari , sottrarre 1 e dividerlo per 2.
Stop quando raggiunge 0
Stampa i numeri ripetuti.
Casi test:
1 => 1, 0
2 => 2, 7, 3, 1, 0
3 => 3, 1, 0
10 => 10, 31, 15, 7, 3...
14 => 14, 43, 21, 10, ...
Regole:
Questa sequenza non funziona per molti numeri perché entra in un ciclo infinito. Non è necessario gestire tali casi. È sufficiente solo stampare i casi di test sopra riportati.
Ho suggerito di sottrarre 1 e dividere per due per dare un numero intero valido per continuare, ma non è necessario che sia calcolato in questo modo. È possibile dividere per 2 e trasmettere a numero intero o qualsiasi altro metodo che fornirà l'output previsto.
È necessario stampare anche l'input iniziale.
Non è necessario che l'output sia formattato come casi di test. Era solo un suggerimento. Tuttavia, l'ordine ripetuto deve essere rispettato.
Vince il codice più piccolo.
0alla fine?