Pascal - 我如何对所有可以被 4 除的数字求和,必须使用 repeat

Pascal - How do i sum all the numbers that can be divided by 4, must use repeat

求和不正确,乘法也不正确,解这道题必须用repeat,我想问题出在sum:=i+i,但我不知道怎么解

program SAD;
uses crt;
var a, i, sum, prod: integer;
begin
clrscr;
sum:=0;
prod:=0;
{Sum}
repeat
for i:=1 to 26 do
if i mod 4 = 0 then sum:=i+i;
until i = 26;
{Multiplication}
repeat
for a:=1 to 26 do
if a mod 4 = 0 then prod:=a*a;
until a = 26;
writeln('Suma numerelor divizate la 4 este:', sum);
writeln('Produsul numerelor divizate la 4 este:', prod);
end.

我认为“使用重复”指令可能是为了让您也避免使用 for

您的代码中存在一些错误:

  1. 在求和循环中,您应该将 i 添加到 sum,而不是自身。

  2. 在 prod 循环中,由于您在开始时将 prod 设置为零,因此它将保持为零,因为零乘以任何值都是零。所以你需要调整你的prod计算逻辑,如果prod为零,当满足mod 4条件时,你设置prod为[的当前值=19=],否则你乘以 a.

这里有一些代码修复了上述问题并避免使用 for

program Sad;
uses crt;
var
  a, i, sum, prod: integer;
begin
  clrscr;
  sum:=0;
  prod:=0;

  {Sum}
  i := 0;
  repeat
    inc(i);
    if (i mod 4) = 0 then
      sum := sum + i;
  until i = 26;

  {Multiplication}
  a :=0;
  repeat
    inc(a);
    if a mod 4 = 0 then begin
      if prod = 0 then
        prod := a
      else
        prod := prod * a;
    end;
  until a = 26;
  writeln('Suma numerelor divizate la 4 este:', sum);
  writeln('Produsul numerelor divizate la 4 este:', prod);
  readln;
end.