Автор | Сообщение |
|
Отправлено: 21.04.23 20:54. Заголовок: не совпадает ответ в №6174, задача 23
k = c = 0 def f(x, y, k, c): if x > y: return 0 if x == y: return 1 while k <= 7 or c == 7: return f(x + 2, y, k + 1, c) while c <= 7 or k == 7: return f(x + ((x % 10) + (x // 10)), y, k, c + 1) return f(x + 2, y, k, c) + f(x + ((x % 10) + (x // 10)), y, k, c) print(f(1, 70, 7, 7))
|
|
|
Ответов - 2
[только новые]
|
|
|
Отправлено: 26.04.23 10:57. Заголовок: Для понимания:
Такой набор 222222211111111111211 брать не надо, т.к. "1" > 7.
|
|
|
|
| Администратор
|
Сообщение: 3988
|
|
Отправлено: 04.06.23 09:40. Заголовок: Вот так можно решать..
Вот так можно решать: from functools import cache @cache def F( start, end, prog = "" ): if start > end: return 0 if start == end: return '1'*7 in prog and '2'*7 in prog and \ '1'*8 not in prog and '2'*8 not in prog return F( start+2, end, prog+'1' ) + \ F( start+sum(map(int, str(start))), end, prog+'2' ) print( F(1, 70) )
|
|
|
|