任务:
在伪代码中写入算法以计算BETWEEN(和包含) p 和 q 之间的数字之和,其中 p , q 是整数。 p 和 q 没有约束( p 可以更小,等于或大于 q )。
该算法应适用于以下情况:
p = 5, q = 9 => sum = 35
p = 7, q = 7 => sum = 14
p = 12, q = 8 => sum = 50
我必须通过迭代来解决这个问题,而不是我已经做过的算术级数公式 我试过这个:
begin
input p, q
S=0
i=p
while i≤q
S= S+i
i=i+1
end while
while i≥q
S= S+i
i=i-1
end while
while i=q
S=q+i
end while
答案 0 :(得分:0)
只是一个以p开头并以q结尾的for循环,反之亦然。每次更新一次 代码:
if(p<q)
{
for(int i=p;i<=q;i++)
{
sum=sum+i;
}
}
else if(p>q)
{
for(int i=q;i<=p;i++)
{
sum=sum+i;
}
}
else
{
sum=2*p;
}
答案 1 :(得分:-3)
很久以前,一些数学家发明了算术进展,你可以使用它。
Sum = N *(第一学期+上学期)/ 2
N = Number of terms i.e q-p+1;
First term = p
Last term = p+ (N-1)