Найдите выведите на экран все трехзначные числа,кратные 20,сумма цифр которых равны сумме цифр частного от деления их на 20

Может так

uses crt;
var b,c,d,t,i,s,k:integer; o:real;
begin
s:=0;
for k:=100 to 1000000000 do
begin
b:=k mod 10;
c:=k div 100;
d:=(k mod 100)div 10;
t:=d+b+c;
o:=(b div 20)+(c div 20)+(d div 20);
if ((k mod 20)=0) and (t=o) then s:=s+1;
end;
writeln('s=',s);
end.

1

Ответы и объяснения

2013-05-17T21:48:43+04:00

Ваш алгорим не оптимален, совершенно незачем делать "for k:=100 to 1000000000 do", т.к. по условию необходимо проверить лишь трехзначные числа.

 

uses crt;
var a,b,k:integer;
begin
for k:=100 to 999 do
if k mod 20 =0
  then begin
    a:= k div 20;
    b:= k div 10;
    if ((a mod 10) + (a div 10)) = ((k mod 10) + (b mod 10) + (a div 10)) then writeln(k);
   end;
end.