Ini adalah pertanyaan pertama saya, jadi saya harap ini berjalan dengan baik.
Latar Belakang:
Bukan sungai yang mungkin Anda pikirkan. Pertanyaannya berkisar pada konsep sungai digital. Sebuah sungai digital adalah urutan angka dimana jumlah berikut nadalah nditambah jumlah digit.
Penjelasan:
12345 diikuti oleh 12360 karena 1 + 2 + 3 + 4 + 5 = 15 dan 12345 + 15 menghasilkan 12360. demikian pula 145 diikuti oleh 155. Jika angka pertama dari sungai digital adalah Mkita akan menyebutnya sungai M.
Sebagai contoh: Sungai 480 adalah urutan awal {480,492,507,519 ....}, dan sungai 483 adalah urutan awal {483,498,519, ....}. Sungai dan sungai normal dapat bertemu, dan hal yang sama berlaku untuk sungai digital. Ini terjadi ketika dua sungai digital berbagi beberapa nilai yang sama.
Contoh:
Sungai 480 memenuhi sungai 483 di 519. Sungai 480 bertemu sungai 507 di 507 dan tidak pernah bertemu sungai 481. Setiap sungai digital akhirnya akan bertemu sungai 1, sungai 3 atau sungai 9.
Tulis sebuah program yang dapat menentukan untuk bilangan bulat tertentu nnilai di mana sungai npertama kali bertemu satu dari tiga sungai ini.
Memasukkan
Input mungkin berisi beberapa test case. Setiap test case menempati baris terpisah dan berisi integer n( 1 <= n <= 16384). Kasing uji dengan nilai 0untuk nmengakhiri input dan kasing uji ini tidak boleh diproses.
Keluaran
Untuk setiap test case di input pertama output jumlah case test (mulai dari 1) seperti yang ditunjukkan dalam output sampel. Kemudian pada baris yang terpisah menghasilkan garis "pertama kali bertemu sungai x at y". Di sini y adalah nilai terendah di mana sungai npertama kali bertemu sungai x(x = 1 atau 3 atau 9). Jika sungai nmemenuhi sungai xdengan ynilai lebih dari satu x, hasilkan nilai terendah. Cetak garis kosong antara dua kotak uji berurutan.
Kasus cobaan
Memasukkan:
86
12345
0
Keluaran:
Case #1
first meets river 1 at 101
Case #2
first meets river 3 at 12423
Mencetak:
Algoritma tercepat menang. Dalam hal dasi. Yang dengan kode pendek akan menang.
Terima kasih kepada mbomb007 karena menunjukkan kesalahan saya.
ps: Saya ingin memiliki solusi tercepat daripada yang terkecil. Saya juga punya solusi yang lambat. Untuk itu lihat di sini .
catatan:
Saya akan menggunakan ini untuk pengujian kode. Dan pengecekan kinerja.
Mkita akan menyebutnya sungaiM " tidak masuk akal karena dua alasan: pertama, jika sungai adalah urutan angka yang tak terbatas maka ia tidak memiliki digit terakhir; dan kedua, pada paragraf sungaiM berikutnya berarti sungai dimulai dari angka M.