Saya pikir dugaan Collatz sudah terkenal. Tetapi bagaimana jika kita membalikkan aturan?
Mulai dengan bilangan bulat n> = 1.
Ulangi langkah-langkah berikut:
Jika n adalah genap , kalikan dengan 3 dan tambahkan 1.
Jika n ganjil , kurangi 1 dan bagi dengan 2.
Berhenti ketika mencapai 0
Cetak nomor yang diulang.
Kasus uji:
1 => 1, 0
2 => 2, 7, 3, 1, 0
3 => 3, 1, 0
10 => 10, 31, 15, 7, 3...
14 => 14, 43, 21, 10, ...
Aturan:
Urutan ini tidak berfungsi untuk banyak angka karena masuk dalam loop tak terbatas. Anda tidak perlu menangani kasus-kasus itu. Hanya mencetak test case di atas sudah cukup.
Saya menyarankan untuk mengurangi 1 dan membaginya dengan dua untuk memberikan integer yang valid untuk melanjutkan, tetapi tidak harus dihitung seperti itu. Anda dapat membaginya dengan 2 dan dilemparkan ke integer atau apa pun metode lain yang akan memberikan hasil yang diharapkan.
Anda perlu mencetak input awal juga.
Output tidak perlu diformat sebagai kasus uji. Itu hanya saran. Namun, perintah yang diulang harus dihormati.
Kode terkecil menang.
0
di bagian akhir?