大家好,这边也是跑来CSDN这里更新了好吧!
今天咱们来讲递归,
递归简单来说就是函数自己调用自己,也就是把一个问题分成了多个有规律的子问题。
OK啊,咱们已经就是已经了解递归了,
咱们来看以下实例:
#include <iostream>
using namespace std;
int cj(int n){
if(n <= 1)
return 1;
return cj(n - 1) * n;
}
int main(){
int n;
cin >> n;
cout << cj(n);
return 0;
}
怎么样,是不是一头雾水。
那咱们加上注释看一看。
#include <iostream> //引入头文件
using namespace std; //使用标准命名空间
int cj(int n){ //创建函数
if(n <= 1) //结束条件
return 1; //结束数值
return cj(n - 1) * n; //进行递归
}
int main(){ //主函数
int n; //数值
cin >> n; //输入
cout << cj(n); //开始递归
return 0; //结束整个程序
}
(注:递归中必须有形参的减少,否则程序会跳过递归函数,而且不能进行任何占用空间的操作)
咱们再看一下流程图
是不是已经明白了?
来做题吧
1.求1+2+···+n
题目描述
用递归的方法求1+2+3+……+N的值。
输入
输入n。
输出
输出和。
样例输入
5
样例输出
15
答案:
第一题
#include <iostream>
using namespace std;
int add(int n){
if(n == 1){
return n;
}
return n + add(n - 1);
}
int main(){
int n;
cin >> n;
cout << add(n);
return 0;
}