
18.12.2009, 00:07
|
|
Познающий
Регистрация: 03.12.2008
Сообщений: 56
Провел на форуме: 140714
Репутация:
29
|
|
TPAXTOP, тебе же написали целых два способа: с циклом while и с циклом for:
Сообщение от Thenno
Код:
Program While25;
var
i,k:integer;
begin
k:=0;
i:=100;
while i<=999 do // тут 999, а не 1000, как было
begin
k:=k+i;
i:=i+25;
end;
writeln (k);
end.
Сообщение от Vish
Код:
Program For25;
var
i:integer;
k:integer;
begin
k:=0;
for i:=100 to 999 do
if i mod 25 = 0 then
k:=k+i;
writeln (k);
end.
Хотя, имхо, второй алгоритм (с циклом for) можно немного доработать: вместо того, чтобы делать 900 сравнений можно посчитать количество чисел делящихся на 25 в пределах от 100 (включительно) до 999, а потом запустить цикл for с таким количеством итераций (фактически, полученный алгоритм очень похож на первый):
Код:
Program For25Extra;
uses
CRT;
var
Result: integer;
count: integer;
number: integer;
i: integer;
begin
clrscr;
count := (999 div 25) - (99 div 25);
Result := 0;
Number := 100;
for i := 1 to count do
begin
inc(Result, Number);
inc(Number, 25);
end;
writeln('Result: ', Result);
readln;
end.
Последний раз редактировалось StealthMaster; 18.12.2009 в 00:09..
|
|
|