Форум » Рекурсивные процедуры и функции » задание 16 №37 » Ответить

задание 16 №37

Sikvllz: Подскажите, как решить задачу 37?

Ответов - 4

Поляков: Sikvllz пишет: как решить задачу 37? Например, написать программу для перебора с циклом. Внутри цикла вызываем функцию и проверяем, находится ли ее результат в нужном диапазоне.

Sikvllz: Спасибо! Но я не очень понимаю как сделать проверку, можете подсказать в чем ошибка? [pre2] function F(n,m: integer): integer; begin if m = 0 then F:= 1 else F:= n*F(n,m-1) end; var x,k,i,j,n:integer; begin k:=0; for n:=1 to 10000 do if (F(n,2)>100) and (F(n,2)<1000) then inc(k); writeln(k); end. [/pre2]

Поляков: Sikvllz пишет: if (F(n,2)>=100) and (F(n,2)<=1000) then И с точки зрения сокращения времени лучше вычислить F(n,2) и сохранить это значение в переменной, а потом эту переменную дважды использовать в условии.


Sikvllz: Лишние переменные забыл удалить!



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