Автор | Сообщение |
|
Отправлено: 27.05.21 00:31. Заголовок: Задание 23 №121
121) (А.Н. Носкин) Исполнитель Калькулятор преобразует число на экране. У исполнителя есть две команды, которым присвоены номера: 1. Прибавить 2 2. Прибавить 5 Определите число, для получения которого из числа 5 существует 34 программы Программа выдает много ответов, но не 21. Помогите найти ошибку. Спасибо 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.
|
|
|
Ответов - 3
[только новые]
|
|
|
Отправлено: 27.05.21 15:28. Заголовок: Оксана2021 пишет: П..
Оксана2021 пишет: цитата: | Программа выдает много ответов, но не 21 |
| Ну во первых ответ к данной задаче 27, а не 21 и в файле ответов он есть. Можно написать простой код: a = [0]*50 a[5] = 1 for i in range(6, 50): a = a[i-2] + a[i-5] print(a.index(34))
|
|
|
|
Отправлено: 27.05.21 15:31. Заголовок: Даже если просто рас..
Даже если просто распечатать для контроля массив командой print(a), то увидите что 34 встречается ровно 1 раз
|
|
|
|
Отправлено: 28.05.21 09:39. Заголовок: Огромное спасибо!! Н..
Огромное спасибо!! Не так поняла задачу.
|
|
|
|