Показать сообщение отдельно

  #6  
Старый 18.12.2009, 00:07
StealthMaster
Познающий
Регистрация: 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..
 
Ответить с цитированием