用于求和(和包括)p和q之间的数字的算法

时间:2017-02-05 11:12:47

标签: algorithm sum

任务:

  

在伪代码中写入算法以计算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

2 个答案:

答案 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)