Участник:Kachanov vv/ACODE

Материал из DISCOPAL
Перейти к: навигация, поиск

https://www.spoj.com/problems/ACODE/

import sys
sys.setrecursionlimit(10000)
DICT = {'0': 0}
for i in range(1, 11):
    DICT[str(i)] = 1
for i in range(11, 27):
    DICT[str(i)] = 2
DICT['20'] = 1
for i in range(30, 100, 10):
    DICT[str(i)] = 0
 
 
def decode(num: str):
    length = len(num)
    ans = 0
    if length == 0 or num[0] == '0':
        return 0
    elif length == 1:
        return DICT[num]
    elif num not in DICT:
        ans = decode(num[1:])
        if num[:2] <= '26':
            ans += decode(num[2:])
        DICT[num] = ans
        return ans
    else:
        return DICT[num]
 
num = input()
while num != '0':
    print(decode(num))
    num = input()