1158:求1+2+3+…
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 9708 通过数: 8220
【题目描述】
用递归的方法求1+2+3+……+N的值。
【输入】
输入N。
【输出】
输出和。
【输入样例】
5
【输出样例】
15
思路:用递归来做
分析如下:
递归算法的两个要素:
1.递归关系式
设d(n)为1+2+3+...+n的和
d(1)=1
d(2)=1+2=d(1)+2
d(3)=1+2+3=d(2)+3
...
d(n)=d(n-1)+n
2.停止的条件
d(n)=1
【代码】
#include<iostream>
#include<cstdio>
using namespace std;
int d(int n)
{
if(n==1)//停止的条件
{
return 1;
}
else//递归关系式
{
return d(n-1)+n;
}
}
int main()
{
int x;
cin>>x;
cout<<d(x);
return 0;
}