Tugas
Urutan, tambahkan-urutan didefinisikan secara rekursif, seperti ini
- a (1) = 1
- a (n) = a (n-1) .n, jika n adalah genap
- a (n) = na (n-1), jika n ganjil
Dimana . mewakili gabungan bilangan bulat.
Jadi beberapa istilah pertama adalah: 1,12,312,3124,53124,531246,7531246,...
Ini adalah A053064 .
Tugas Anda adalah, diberi bilangan bulat a> 0 untuk mengembalikan n , sedemikian sehingga elemen ke- n dalam prependensi, tambahkan-Urutan sama dengan a dan jika tidak ada n seperti itu mengembalikan 0, angka negatif atau kesalahan keluar dll.
Aturan
- Input dapat diambil sebagai integer, string, daftar karakter / digit dll.
- Output dapat dicetak ke STDOUT atau dikembalikan (integer, string, dll.)
- Pada input yang tidak valid & dalam hal tidak ada n seperti itu, program Anda dapat melakukan apa pun kecuali mengembalikan bilangan bulat positif (mis. Loop selamanya, mengembalikan 0 dll.)
- Anda dapat memilih untuk menggunakan pengindeksan 0, tetapi kemudian output jika tidak ada n tidak dapat 0
Uji kasus
1 -> 1
12 -> 2
21 -> 0
123 -> 0
312 -> 3
213 -> 0
211917151311975312468101214161820 -> 21
2119171513119753102468101214161820 -> 0
333129272523211917151311975312468101214161820222426283031 -> 0
999795939189878583817977757371696765636159575553514947454341393735333129272523211917151311975312468101214161820222426283032343638404244464850525456586062646668707274767880828486889092949698100 -> 100
a(n-1)*(int(log(n))+1)+n
dann*(int(log(n))+1)+a(n-1)
?