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

16 (№ 2289)

Кэйт: Что не так? Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(n) = n*n + 11, при n ≤ 15 F(n) = F(n//2) + n*n*n - 5*n, при чётных n > 15 F(n) = F(n-1) + 2*n + 3, при нечётных n > 15 Здесь // обозначает деление нацело. Определите количество натуральных значений n из отрезка [1; 1000], для которых значение F(n) содержит не менее трёх цифр 6. [pre2] var z,i,k,x,p:integer; function f(n:integer):integer; begin if n<=15 then F:= (n*n) + 11; if (n mod 2=0) and (n>15) then F:=F(n div 2)+n*n*n-5*n; if (n mod 2<>0) and (n>15) then F:= F(n-1) + 2*n + 3 end; begin z:=0; for i:= 1 to 1000 do begin x:=f(i); k:=0; while x>0 do p:= x mod 10; x:= x div 10; if p=6 then k:=k+1; end; if k>=3 then begin z:=z+1; end; writeln(z); end.[/pre2]

Ответов - 1

Поляков: Проверьте, где у вас начало и конец тела каждого цикла.



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