На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Не зарегистрирован
ссылка на сообщение  Отправлено: 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.


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 3 [только новые]





Сообщение: 149
ссылка на сообщение  Отправлено: 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))


Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 150
ссылка на сообщение  Отправлено: 27.05.21 15:31. Заголовок: Даже если просто рас..


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

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 1
ссылка на сообщение  Отправлено: 28.05.21 09:39. Заголовок: Огромное спасибо!! Н..


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

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1127
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет