题目描述:
用递归的方法求1+2+3+……+N的值。
输入:
输入N。
输出:
输出和。
审题:
通过看题可以得知这是一个从1到N的累加,并且要用递归
先来讲比较重要的递归
那么我们第一个就是要找递归关系式和停止条件
从1到N说明是数字越来越大,并且后面的数字与前面的数字相差 1
所以停止条件就是没有到N就继续加
但是,递归一般都是把N丢进去,所以就要换一个思路,把N做开头,1结尾。
所以停止条件就是
n==1
而递归关系式也比较好找,因为他是一个有规律的等差数列,差值就是1。
递归关系式就是
d(n)=n+d(n-1)
一系列下来,一个递归函数的雏形就出来了:
int d(int x)
{
if(x==1)return x;
else return x+d(x-1);
}
接着就是把主函数补充完整,一个输入一个输出,就不用讲了吧
#include<bits/stdc++.h>
using namespace std;
int d(int x)
{
if(x==1)return x;
else return x+d(x-1);
}
int main()
{
int n;
cin>>n;
cout<<d(n);
return 0;
}
还有一点:
#include<bits/stdc++.h>
是万能头文件 //知道的别吭声