Завдання
Попередження, додавання-послідовність визначається рекурсивно, як це
- a (1) = 1
- a (n) = a (n-1) .n, якщо n парне
- a (n) = na (n-1), якщо n непарне
де . являє собою ціле число конкатенації.
Тож перші кілька термінів: 1,12,312,3124,53124,531246,7531246,...
Це A053064 .
Ваше завдання задається цілим числом a> 0, щоб повернути n , таким чином, що n- й елемент в препендері, append-Послідовність дорівнює a, а якщо такого n немає, повертається 0, від'ємне число або помилка і т.д.
Правила
- Введення можна сприймати як ціле число, рядок, список символів / цифр тощо.
- Вихід можна надрукувати в STDOUT або повернути (ціле число, рядок тощо).
- На неприпустимому введенні і в разі відсутності такого п не існує ваша програма може зробити що - небудь , але повертає позитивне ціле число (наприклад, нескінченний цикл, повернення 0 і т.д.)
- Ви можете скористатися 0-індексуванням, але тоді вихід у випадку, коли немає n, не може бути 0
Тестові справи
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
іn*(int(log(n))+1)+a(n-1)
?