Tulis program yang menggunakan dua bilangan bulat sebagai input; yang pertama bisa berupa bilangan bulat apa saja dan yang kedua kurang dari atau sama dengan jumlah digit pada angka pertama. Biarkan angka-angka ini menjadi a
dan b
masing - masing.
Program akan melakukan hal berikut
- Gabungkan jumlah minimal
1
s hingga akhira
sehingga jumlah digita
dapat dibagi denganb
. - Membagi
a
setiapb
digit. - Lipat gandakan digit di setiap bagian bersamaan.
- Gabungkan produk bersama-sama (jika salah satu angka adalah nol, maka gabungkan
0
). - Ulangi proses ini sampai angka dengan angka yang benar-benar kurang dari
b
angka terbentuk. Cetak ini sebagai output, serta jumlah proses diulang. Unit tidak diperlukan, tetapi beberapa bentuk pemisahan antara jumlah akhir dan jumlah iterasi adalah.
Dalam kasus uji berikut, langkah-langkah individu ditampilkan untuk tujuan pemahaman. Program Anda tidak perlu menampilkan langkah-langkahnya.
Test case 1
1883915502469, 3
Langkah
1883915502469 //Iteration 1
188391550246911
188 391 550 246 911
64 27 0 48 9
64270489 //Iteration 2
642704891
642 704 891
48 0 72
48072 //Iteration 3
480721
480 721
0 14
014 //Iteration 4
0
Output sampel :0, 4
Uji kasus 2
792624998126442, 4
Langkah
792624998126442 //Iteration 1
7926249981264421
7926 2499 8126 4421
756 648 96 32
7566489632 //Iteration 2
756648963211
7566 4896 3211
1260 1728 6
126017286 //Iteration 3
126017286111
1260 1728 6111
0 112 6
01126 //Iteration 4
01126111
0112 6111
0 6
06
Output sampel :06, 4
Program harus mengembalikan kesalahan (atau tidak mencetak apa pun) jika b>len(a)
. Juga, b
tidak dapat sama dengan 1 atau program akan menghasilkan loop tak terbatas.
Ini kode golf, jadi aturan standar berlaku. Kode terpendek dalam byte menang.
a
dan juga termasuk dalam output?Jawaban:
CJam, 42 byte
Uji di sini.
sumber
Perl 6, 116 byte
sumber
Pyth, 32 byte
Demonstrasi
Mengambil input pada dua baris,
a
diikuti olehb
. Memberikan output pada dua baris, operasi diikuti oleh hasil.Bantalan:
+z*\1%_lzQ
Memotong:
c ... Q
Konversikan ke daftar int:
sMM
Ambil produk:
*M
Konversi kembali ke str:
jk
Tetapkan kembali:
=z
Periksa untuk penghentian:
<l ... Q
Iterasi cetak diambil:
f ... )
Hasil cetak:
z
Pemeriksaan awal apakah akan mencetak sesuatu:
IglzQ
sumber