一道简单的C++编程题,

时间:2021-09-15 23:32:59
    //由于晚生刚开始学C++

          //请各位高手见谅:

     S=1+(1+2)+(1+2+3)+(1+2+3+4)+ …… (1+2+3+4+n)
 
  //  结果是多少?假如n=100;

       //  请大侠们不要用高深的算法来做,做出来我又得花好多好多时间去看程序了

            // 用简单的循环我想应该可以实现吧!想了两个小时,最后还是要向大家求救                
                   //  是不是要用到循环的嵌套呢?

19 个解决方案

#1


int S = 0;
for( int i = 1; i <= n; i++ )
    for( int j = 1; j <= i; j++ )
       S += j;

#2


for i = 1 --> 100
{
   for (j = 1 --> i)
   {
      ...
   }
}

#3



int sum = 0;//结果就是S
for (int i=1;i<=100;++i)
{
for (int j=1;j<=i;++j)
{
sum+=j;
}
}

#4


    // 哎!果然要用到循环的嵌套,谢谢大家了!

#5


楼上正解

#6


一重循环搞定:
int S = 0, a = 0;
for (int i = 1; i <= n; i++)
{
a += i;
S += a;
}

#7


s = n*(n+1)*(n+2)/6
我现在还能算出来不容易啊

#8


或直接用公式
a(n) = n(n+1)/2
     = b(n) - b(n-1)
其中 b(n) = n(n+1)(n+2)/6
因此 S(n) = b(n) - b(0) = b(n) = n(n+1)(n+2)/6
int S = n*(n+1)*(n+2)/6;

#9


int n=4;
int sum=0,tmp=0;
for(int i=1;i<=n;i++)
{
tmp=tmp+i;
sum=sum+tmp;
}

#10


上面有人发

#11


    一道题有这么多解!C++真的很厉害,不,应该说是上面的各位很N。
第一次见到这么牛的论坛,很活跃,要是在其他地方,你非得等上至少一天时间(恐怕到时候见到答案自己都能解决掉了)。


    UP CSDN

#12


#include <stdio.h>

int test(int n);
int sum(int n);

int main()
{
printf("%d",test(3));
return 0;
}

int test(int n)
{
if(n==1)
return 1;
return sum(n)+test(n-1);
}

int sum(int n)
{
int sum = 0;
while(n>0) sum+=n--;
return sum;
}

#13


厉害的。学习

#14


这是数学题 谢谢

#15


引用 6 楼 plumstar 的回复:
一重循环搞定:C/C++ codeint S=0, a=0;for (int i=1; i<= n; i++)
    {
        a+= i;
        S+= a;
    }


正解!!!

#16


高手,的确很多。

#17


厉害啊!

#18


看来大家都是高手啊 !!!惭愧!!!

#19


#include <stdio.h>
main()
{
int m,n,multiply;
unsigned sum;
sum=0;
        n=1;
for (m=100;m>=1;m--)
  {
           
   multiply=m*n;
   sum=multiply+sum;
           n++;
  }
printf("sum is %u\n",sum);
        return (0);
        }

#1


int S = 0;
for( int i = 1; i <= n; i++ )
    for( int j = 1; j <= i; j++ )
       S += j;

#2


for i = 1 --> 100
{
   for (j = 1 --> i)
   {
      ...
   }
}

#3



int sum = 0;//结果就是S
for (int i=1;i<=100;++i)
{
for (int j=1;j<=i;++j)
{
sum+=j;
}
}

#4


    // 哎!果然要用到循环的嵌套,谢谢大家了!

#5


楼上正解

#6


一重循环搞定:
int S = 0, a = 0;
for (int i = 1; i <= n; i++)
{
a += i;
S += a;
}

#7


s = n*(n+1)*(n+2)/6
我现在还能算出来不容易啊

#8


或直接用公式
a(n) = n(n+1)/2
     = b(n) - b(n-1)
其中 b(n) = n(n+1)(n+2)/6
因此 S(n) = b(n) - b(0) = b(n) = n(n+1)(n+2)/6
int S = n*(n+1)*(n+2)/6;

#9


int n=4;
int sum=0,tmp=0;
for(int i=1;i<=n;i++)
{
tmp=tmp+i;
sum=sum+tmp;
}

#10


上面有人发

#11


    一道题有这么多解!C++真的很厉害,不,应该说是上面的各位很N。
第一次见到这么牛的论坛,很活跃,要是在其他地方,你非得等上至少一天时间(恐怕到时候见到答案自己都能解决掉了)。


    UP CSDN

#12


#include <stdio.h>

int test(int n);
int sum(int n);

int main()
{
printf("%d",test(3));
return 0;
}

int test(int n)
{
if(n==1)
return 1;
return sum(n)+test(n-1);
}

int sum(int n)
{
int sum = 0;
while(n>0) sum+=n--;
return sum;
}

#13


厉害的。学习

#14


这是数学题 谢谢

#15


引用 6 楼 plumstar 的回复:
一重循环搞定:C/C++ codeint S=0, a=0;for (int i=1; i<= n; i++)
    {
        a+= i;
        S+= a;
    }


正解!!!

#16


高手,的确很多。

#17


厉害啊!

#18


看来大家都是高手啊 !!!惭愧!!!

#19


#include <stdio.h>
main()
{
int m,n,multiply;
unsigned sum;
sum=0;
        n=1;
for (m=100;m>=1;m--)
  {
           
   multiply=m*n;
   sum=multiply+sum;
           n++;
  }
printf("sum is %u\n",sum);
        return (0);
        }

#20