Compito
Il prepend, append-Sequence è definito in modo ricorsivo, in questo modo
- a (1) = 1
- a (n) = a (n-1) .n, se n è pari
- a (n) = na (n-1), se n è dispari
dove la . rappresenta una concatenazione di numeri interi.
Quindi i primi termini sono: 1,12,312,3124,53124,531246,7531246,...
questo è A053064 .
Il vostro compito è, dato un numero intero a> 0 per tornare n , tale che l' n -esimo elemento nella prepend, accodamento sequenza è uguale a una e se tale n esiste ritorno 0, un numero negativo o errore su etc.
Regole
- L'input può essere preso come numero intero, stringa, elenco di caratteri / cifre ecc.
- L'output può essere stampato su STDOUT o restituito (numero intero, stringa ecc. Va bene)
- In caso di input non valido e nel caso in cui non esista n , il programma può fare qualsiasi cosa tranne restituire un numero intero positivo (es. Loop per sempre, ritorno 0 ecc.)
- È possibile scegliere di utilizzare l'indicizzazione 0, ma l'output nel caso in cui non esista n non può essere 0
Casi test
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
en*(int(log(n))+1)+a(n-1)
?