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

Задача 2288

Nikolass: Здравствуйте. В этой задаче тоже диапазон нужно уменьшать, как в соседних задачах? В ответе указано 164, получается 177. Вывел все получившиеся значения, восьмерки в каждом пересчитал, все по тексту - не менее двух. [pre2] function f(n:integer):int64; begin if n<=5 then result:=n+15 else if n mod 2=0 then result:=f(n div 2)+n*n*n-1 else result:=f(n-1)+2*n*n*+1 end; begin var count:=0; for var i:=1 to 1000 do begin var t:=f(i); var count8:=0; var t2:=t; while t2>0 do begin if t2 mod 10=8 then begin count8+=1; if count8=2 then begin count+=1; println (count,t); break; end; end; t2:= t2 div 10; end; end; end. [/pre2]

Ответов - 2

Поляков: Nikolass пишет: else result:=f(n-1)+2*n*n*+1

Nikolass: Спасибо



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