pascal - 帕斯卡 - 我如何将所有可以除以 4 的数字相加,必须使用重复
问题描述
无法获得正确的答案,它也错误地求和并相乘,解决这个问题时我必须使用重复,我想问题出在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
。
您的代码中有一些错误:
在 sum 循环中,您应该添加
i
到sum
,而不是添加到自身。在 prod 循环中,由于您
prod
在开始时设置为零,因此它将保持为零,因为零乘以任何东西都是零。所以你需要调整你的prod
计算逻辑,如果prod
是零,当mod 4
条件满足时,你设置prod
为当前值a
,否则你乘以它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.
推荐阅读
- javascript - ontrack 事件没有为调用者触发
- css - Vuetify 导航栏中的中心徽标
- huggingface-transformers - Huggingface MarianMT 翻译器会丢失内容,具体取决于模型
- c++ - 表达式 C++ 的求值顺序
- python - 如何在python中返回主菜单之前显示绘图
- laravel - 如何组合数据数组并使其更易于使用
- node.js - 为什么在 webpack encore 项目中找不到 perf_hooks?[require("perf_hooks") 失败]
- amazon-cognito - 谷歌登录时如何更改应用名称?
- android - 对讲开启时,双击 RecyclerView 项目不会触发 onInterceptTouchEvent
- javascript - 无法设置本地存储