Форум » Обработка целых чисел » 17.(№ 2341) (В.Н. Шубинкин) » Ответить

17.(№ 2341) (В.Н. Шубинкин)

Артур: Рассматривается множество целых чисел, принадлежащих числовому отрезку [1000, 70000], которые имеют 5 знаков в восьмеричной и 6 знаков в пятеричной записи, а их запись в шестнадцатеричной системе счисления заканчивается на 'FA'. Найдите количество таких чисел и максимальное из них. В ответе запишите два целых числа: сначала количество, затем максимальное число. Не понимаю. где ошибка, как правильно написать программу? var n, y,c,x,k,max,i: integer; begin n:=0; mAX:=1000; for i:=1000 to 70000 do begin k:=0; c:=0; x:=i; y:=i; while x > 0 do begin x:= x div 8; k:=k+1; end; while y > 0 do begin x:= x div 5; c:=c+1; end; if (k=5) and (c=6) and (i mod 4096 =250) then begin n:= n+1; if i>max then max:=i; end; end; writeln(n,' ',max); end.

Ответов - 2

cabanov.alexey: i mod 256 = 250

polyakovss: [pre2]Ошибки: 1) while y > 0 do begin y:= y div 5; c:=c+1; end; 2) if (k=5) and (c=6) and (i mod 256 = 250) then или так в PascalABC.NET: var x, k, maxch:integer; function count(x,k:integer):integer; var n:integer; begin n:=0; while x>0 do begin inc(n); x:=x div k; end; Result:=n end; function f(x:integer): boolean; begin if ((count(x,8) =5) and (count(x,5)=6) and ((x mod 256)=250)) then Result:=True else Result:= False end; begin k:=0; for x:=1000 to 70000 do begin if f(x) then begin inc(k); maxch:=x end; end; writeln(k,' ',maxch); end. [/pre2]



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