Matematikawan yang gila memiliki banyak koleksi angka, dan karena itu ruang yang dia tinggalkan sangat terbatas. Untuk menghemat, ia harus melipat bilangan bulatnya, tetapi sayangnya ia benar-benar malas. Tugas Anda, jika Anda ingin membantunya, adalah membuat fungsi / program yang melipat bilangan bulat positif yang diberikan untuk maniak nomor kami.
Bagaimana cara melipat bilangan bulat?
Jika habis dibagi dengan jumlah digitnya, bagilah dengan jumlah digitnya. Jika tidak memenuhi persyaratan itu, ambil sisanya ketika dibagi dengan jumlah digitnya. Ulangi proses ini hingga hasilnya tercapai 1. Bilangan bulat terlipat adalah jumlah operasi yang harus Anda lakukan. Mari kita ambil contoh (katakanlah 1782):
Mendapatkan jumlah dari digit:
1 + 7 + 8 + 2 = 18.1782dibagi secara merata oleh18, jadi nomor selanjutnya adalah1782 / 18 = 99.99tidak dibagi secara merata9 + 9 = 18, maka kita mengambil sisanya:99 % 18 = 9.9jelas dibagi oleh9, jadi kami membaginya dan mendapatkan1.
Hasilnya adalah 3, karena 3 operasi diperlukan untuk mencapai 1.
Aturan dan Spesifikasi
Beberapa bilangan bulat mungkin memiliki jumlah digit yang sama dengan
1, seperti10atau100. Program Anda tidak perlu menangani kasus seperti itu. Itu berarti, Anda akan dijamin bahwa bilangan bulat yang diberikan sebagai input tidak memiliki jumlah digit sama dengan1, dan tidak ada operasi dengan bilangan bulat yang diberikan akan menghasilkan angka yang jumlah digitnya1(kecuali untuk1dirinya sendiri, yaitu " target"). Misalnya, Anda tidak akan pernah menerima10atau20sebagai masukan.Input akan bilangan bulat positif lebih tinggi dari
1.Berlaku celah default .
Anda dapat mengambil input dan memberikan output dengan cara standar apa pun .
Uji Kasus
Input -> Output 2 -> 1 5 -> 1 9 -> 1 18 -> 2 72 -> 2 152790 -> 2 152 -> 3 666 -> 3 777 -> 3 2010 -> 3 898786854 -> 4
Berikut adalah program yang memungkinkan Anda memvisualisasikan proses dan mencoba lebih banyak kasus uji.
Ini adalah kode-golf , jadi kode terpendek di setiap bahasa (dicetak dalam byte) menang!
8987868546input yang valid, itu akan merusak alat tes Anda, dan juga banyak (jika tidak semua) dari jawabannya ...
898786854, bukan 8987868546(Anda telah menambahkan 6di akhir)
8987868546 bukan 1 ( Aturan 1 bertemu ) dan 8987868546bilangan bulat positif lebih tinggi dari 1 ( Aturan 2 bertemu ).