Форум » Динамическое программирование » Задание 23 №121 » Ответить

Задание 23 №121

Оксана2021: 121) (А.Н. Носкин) Исполнитель Калькулятор преобразует число на экране. У исполнителя есть две команды, которым присвоены номера: 1. Прибавить 2 2. Прибавить 5 Определите число, для получения которого из числа 5 существует 34 программы Программа выдает много ответов, но не 21. Помогите найти ошибку. Спасибо [pre2] function f(x, y, k:uint64):uint64; begin if x > y then F:=0; if x = y then begin if k = 34 then F:= 1 else F:=0;end; if x < y then F:=f(x+2,y,k+1)+f(x+5,y,k+1); end; begin For var i:= 10 to 500 do if f(5,i,0)>0 then println(i,f(5,i,0)); end. [/pre2]

Ответов - 3

nikson: Оксана2021 пишет: Программа выдает много ответов, но не 21 Ну во первых ответ к данной задаче 27, а не 21 и в файле ответов он есть. Можно написать простой код: [pre2] a = [0]*50 a[5] = 1 for i in range(6, 50): a = a[i-2] + a[i-5] print(a.index(34)) [/pre2]

nikson: Даже если просто распечатать для контроля массив командой print(a), то увидите что 34 встречается ровно 1 раз

Оксана2021: Огромное спасибо!! Не так поняла задачу.




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