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

4884

student5: Алгоритм вычисления значения функции F(n), где n – целое неотрицательное число, задан следующими соотношениями: F(n) = 1 при n ≤ 1 F(n) = 2·F(n - 1) + F(n - 2) если n > 1 и n кратно 3 F(n) = 3·F(n - 2) + F(n - 1) в остальных случаях Сколько существует значений n на отрезке [1, 35], для которых сумма цифр значения функции F(n) является простым числом? Что не так в решении? function f(n:integer):integer; Begin if n<=1 then f:=1; if (n>1) and (n mod 3=0) then f:=2*f(n-1)+f(n-2); if (n>1) and (n mod 3<>0) then f:=3*f(n-2)+f(n-1); end; var n,x,s,k,m,i:integer; begin for n:=1 to 35 do begin x:=f(n); s:=0; while x<>0 do begin s:=s+x mod 10; x:=x div 10; end; k:=0; for i:=2 to s-1 do if s mod i=0 then k:=k+1; writeln(k); If k=0 then m:=m+1; end; writeln(m); end.

Ответов - 1

MrAndrewson: Советую выводить кроме количества делителей еще значения функции для каждого n. Возможно, тогда поймете свою ошибку.



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