设计一个C++程序,从键盘输入n值,然后求 S1+(1+2)+(1+2+3)+......+(1+

设计一个C++程序,从键盘输入n值,然后求 S1+(1+2)+(1+2+3)+......+(1+2+3+...+n)的值。 求详细步骤 ,最重要是for语句的解释

第1个回答  2015-01-05
#include <iostream>
using namespace std;

// 此处一个简单的递归算法可以求得sn = 1 + 2 + ... +n;
int fun (int x)
{
if (x == 0) {
return 0;
}
else
return x + fun(x - 1);
}

int main()
{
int i, n, sum = 0;
//此处for循环应该挺好懂的,就不解释了,当然要运行程序的话只需要把n改称你想要的数字,或者用cin >> 输入n;
for (i = 1; i <= n; i++) {
sum += fun(i);
}
cout << sum << endl ;
}
第2个回答  2015-01-05
//January 05,2015 By 12052010 测试已通过
#include<iostream> 
using namespace std;

int getNumber(int yourNum){//计算1+2+3+..+yourNum的和
int sum =0;
for(int i=0; i<=yourNum; i++)
sum+=i;
return sum;


int main(){
int n;
long sum=0;//累加

do{
cout<<"\nInput n is(n>=0): ";
cin>>n;
} while(n<0);//控制输入合法

for(int i=0; i<=n; i++){//计算1+(1+2)+...+(1+2+..+n)的和
sum+=getNumber(i);
}

cout<<"\nThe result is: "<<sum;

return 0;

}

本回答被网友采纳
第3个回答  2015-01-05

相似回答