Автор | Сообщение |
|
Отправлено: 13.02.24 14:25. Заголовок: 7098 Не сходится ответ
Здравствуйте, разными способами учитывали условие и получили другой ответ -93445. Код ниже def f(x,y,s): u=('23' not in s and '20' in s) or ('23' in s and '20'not in s)or ('23' not in s and '20' not in s) if x==y and u: return 1 if x<y: return 0 return f(x-3,y,s+str(x))+f(x-1,y,s+str(x))+f(x-4,y,s+str(x)) print(f(43,17,''))
|
|
|
Ответов - 1
[только новые]
|
|
|
Отправлено: 17.02.24 17:48. Заголовок: f=lambda n,tr: f(n..
f=lambda n,tr: f(n-1, tr+[n])+ f(n-3, tr+[n])+f(n-4, tr+[n]) if n>17 else n==17 and ( (23 in tr) + (20 in tr) ) <=1 print(f(43,[])) Ваше код надо поправить так: def f(x, y, s): u = ('23' not in s and '20' in s) or ('23' in s and '20' not in s) or ('23' not in s and '20' not in s) if x == y and u: return 1 if x < y: return 0 return f(x - 3, y, s + ' '+str(x)) + f(x - 1, y, s + ' '+str(x)) + f(x - 4, y, s + ' '+str(x)) print(f(43, 17, '')) У вас числа в траектории склеиваются 233441... где между ними раздел - не видно. Либо добавляйте числа в список, либо разделяйте пробелом
|
|
|