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

16 №67

bazjan: Подскажите, нет ли опечатки в условии 67 задания, и как оно в целом решается?

Ответов - 6

Поляков: Опечатки нет. Но задание с подводным камнем. Грубо в лоб (простой переборной программой) его не взять, нужно сначала обдумать, что там происходит.

Anvikm: Здравствуйте, Константин Юрьевич! И всем тоже добрый вечер! Excel мне выдает ответ в 16 №67: 24. решение в Excel (желтым пометила строки, где получаются трехзначные числа, идут вначале 22 и еще в конце 2. Всего 24)

Поляков: Anvikm пишет: (желтым пометила строки, где получаются трехзначные числа, идут вначале 22 и еще в конце 2. Всего 24) И вас совсем не смущают ссылки вперед, на пустые ячейки?


Inna: Здравствуйте! Сделала задачу на Питоне. С ответом сошлось, но смущает сам ход моего рассуждения: так как функция F(n) = n + 2*F(n + 2) не определена, т.е. вычислить ее не возможно, поэтому заменим ее в программе, например, на 1. def F(n): if n < 3: return n+1 if n%2==0: return 1 else: return F(n-2)+n-2 k=0 for n in range(1,1000): if 99<F(n) and F(n)<1000: k+=1 print(k) Может ответ получился случайно? Если "да", то в чем я ошибаюсь?

AnnaPershina: Решила так. Только в варе лишние переменные из предыдущих моих задач, удалять лень var t,x,s,n,k:integer; function F( n: integer ): integer; begin if n<3 then F:=n+1; if (n mod 2 =0) and (n>=3) then exit; if (n mod 2 <>0) and (n>=3) then F:=F(n-2)+n-2; end; begin for n:=1 to 100 do begin x:=F(n); if ( x>99 ) and (x<1000) then s:=s+1; k:=0; end; writeln(s); end.

cabanov.alexey: [pre2]if (n mod 2 =0) and (n>=3) then exit;[/pre2] Простой exit может пропустить ряд значений. С таким надо поосторожнее.



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