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 n
adalah n
ditambah 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 M
kita 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 n
nilai di mana sungai n
pertama 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 0
untuk n
mengakhiri 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 n
pertama kali bertemu sungai x
(x = 1 atau 3 atau 9). Jika sungai n
memenuhi sungai x
dengan y
nilai 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.
M
kita 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
.