Автор | Сообщение |
|
Отправлено: 21.01.21 20:17. Заголовок: 16 №66
66) Алгоритм вычисления функции F(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. function F(n:longint):longint; begin if n<=15 then F:=n*n+11 else if (n mod 2 = 0) and (n>15) then F:=F(n div 2)+n*n*n-5 else if (n mod 2 <> 0) and (n>15) then F:=F(n-1)+2*n+3; end; var i,x,a,k,t,k1:longint; begin k:=0; for i:=1 to 1000 do begin t:=0; x:=F(i); k1:=0; while x>0 do begin a:=x mod 10; if a=6 then k1:=k1+1; x:=x div 10; end; if k1>=3 then k:=k+1; end; writeln(k); end. Ответ:40 В ключе ответ 49
|
|
|
Ответов - 3
[только новые]
|
|
|
Отправлено: 21.01.21 22:16. Заголовок: ошибка в описании функции от четного n
F := F(n div 2) + n * n * n - 5*n
|
|
|
|
Отправлено: 22.01.21 12:24. Заголовок: Спасибо...
Спасибо.
|
|
|
|
Отправлено: 12.03.23 20:08. Заголовок: #66 def f(n): i..
#66 def f(n): if n<=15: return n*n+11 if n>15 and n%2==0: return f(n//2)+n*n*n-5 if n>15 and n%2!=0: return f(n-1)+2*n+3 k=0 for n in range (1,1000+1): s=str(f(n)) if s.count('6')>= 3: k+=1 print (k) # у меня тоже ответ 40
|
|
|
|