Tantangan:
Buat program yang mengambil input dari bilangan bulat non-nol positif dan menampilkan 4 angka berikutnya dalam urutan yang dijelaskan di bawah ini.
Catatan: Memeriksa apakah input sebenarnya bilangan bulat bukan nol yang positif tidak diperlukan
Urutan:
Setiap angka dalam urutan ini (selain dari yang pertama, yang merupakan input) harus terdiri dari n digit, di mana n adalah bilangan genap. Jika kita membagi angka menjadi n / 2 pasangan, untuk setiap pasangan, angka pertama harus menjadi jumlah kali angka kedua muncul di angka sebelumnya
Penjelasan visual :
Pertimbangkan contoh ini "urutan pemula" atau input 6577
Angka berikutnya dalam urutan harus terlihat seperti ini 161527
Karena input memiliki 1 "6", 1 "5" dan 2 "7" s.
Jika input memiliki terlalu banyak digit (lebih dari 9 dari satu digit) Anda tidak akan bisa mendapatkan output yang benar.
Contoh: 111111111111
(12 1)
Nomor berikutnya secara berurutan harus menggambarkan 12 1. Jadi kita membaginya menjadi 9 1 dan 3 1 (jumlah 9 + 3 = 12)
Nomor berikutnya:9131
Anda harus mengulangi 4 kali untuk input, dan output (baik mengembalikan daftar / array 4 bilangan bulat, atau output dengan memisahkannya dengan spasi, baris baru juga dapat diterima)
"Jumlahnya dapat ditulis dalam banyak cara, bagaimana cara menulisnya?" :
Jika Anda memikirkannya, input contoh 6577
juga dapat ditulis sebagai 271516 (dua 7, satu 5, satu enam). Namun ini adalah output yang tidak valid. Anda harus mengulangi angka dari kiri ke kanan. Jadi 161527. Jika itu 7657
Anda akan mengulangi jumlah 7, maka jumlah 6 lalu jumlah 5, maka output yang valid akan271615
Contoh I / O:
Input: 75
Output:1715 211715 12311715 4112131715
Input: 1
Output:11 21 1211 3112
Input: 111111111111
(12 1)
Output:9131 192113 31191213 23411912
Ini tidak seperti pertanyaan "Katakan apa yang Anda lihat", karena urutannya berbeda: https://oeis.org/A005150 <- Yang ini mengembalikan angka seperti ini:
Input: 1211 Output: 111221
Sementara urutan yang saya minta akan melakukan
Input: 1211 Output: 3112
Dua urutan berbeda dan memerlukan algoritma yang berbeda.
Urutan pertanyaan saya: https://oeis.org/A063850 urutan
"Kemungkinan duplikat": https://oeis.org/A005150
Spesifikasi penting:
Karena tidak cukup jelas untuk beberapa orang yang mencoba menjawab pertanyaan ini, output yang benar untuk k chars di mana k> 9 bukanlah "kc" (di mana c adalah char) tetapi 9c (k-9) c dll. Dengan demikian output yang benar untuk 12 1 bukan 121
(12 1) tetapi 9131
(9 1, (12-9) 1 dan seterusnya)
Jika ragu, kode Anda salah jika pernah menampilkan angka dengan jumlah digit ganjil (seperti 121), ia harus memiliki keluaran angka digit genap karena sifat urutannya.
Ini adalah kode-golf sehingga kode dengan kemenangan bytes paling sedikit.
23411912
bukan 23411219
?
1111111111111111111
(19 1 )