Форум » Динамическое программирование » 23 не сошёлся ответ » Ответить

23 не сошёлся ответ

ahmed: У исполнителя Калькулятор две команды, которым присвоены номера: 1. прибавь 1 2. увеличь две младшие цифры на 1 Первая из них увеличивает число на экране на 1, вторая – увеличивает на 1 число десятков и число единиц. Если перед выполнением команды 2 какая-либо из двух младших цифр равна 9, она не изменяется. Программа для Калькулятора – это последовательность команд. Сколько есть программ, которые число 23 преобразуют в число 48? Мой код: [pre2] a = [0] * 49 a[23] = 1 for i in range(24, 49): a[ i] = a[ i - 1] if not('0' in str(i)): a[ i] += a[ i - 11] print(a[48]) [/pre2] Правильный ответ: 26 Мой ответ: 25

Ответов - 2

polyakovss: [pre2] def f(x): if x % 10 != 9: x += 11 else: x += 10 return x a=[0]*100 a[23]=1 for x in range(48): a[x+1] += a[x] a[f(x)] += a[x] print(a[48])[/pre2]

AnnaPershina: def f(x,y): if x>y: return 0 if x == y: return 1 if x < y: return f(x+1,y)+f(x+11,y) print(f(23,48))



полная версия страницы