Tarea
El prepend, append-Sequence se define de forma recursiva, así
- a (1) = 1
- a (n) = a (n-1) .n, si n es par
- a (n) = na (n-1), si n es impar
donde el . representa una concatenación de enteros.
Entonces, los primeros términos son: 1,12,312,3124,53124,531246,7531246,...
Este es A053064 .
Su tarea es, dado un número entero a> 0 para volver n , tal que el n -ésimo elemento en el prepend, append-secuencia es igual a una y si hay tal n existe retorno 0, un número negativo o error fuera, etc.
Reglas
- La entrada puede tomarse como un entero, una cadena, una lista de caracteres / dígitos, etc.
- La salida puede imprimirse en STDOUT o devolverse (entero, cadena, etc. está bien)
- En una entrada no válida y en el caso de que no exista tal n , su programa puede hacer otra cosa que devolver un número entero positivo (por ejemplo, bucle para siempre, devolver 0, etc.)
- Puede optar por utilizar la indexación 0, pero la salida en caso de que no exista n no puede ser 0
Casos de prueba
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
yn*(int(log(n))+1)+a(n-1)
?