文章目录
递归中的参数
递归与全局变量
递归调用中,变量的作用域遵循普通函数调用。
在执行递归中,经常会遇到复杂的参数设置,其中某些参数始终保持不变,但被每一层递归使用,这个时候我们可以将其设置为全局变量。
如何构思递归
递归往往对应着问题转化,从计算斐波那契数列来看,将求解 F(n) 的问题,转化为了求解 F(n−1) 和 F(n−2) 的问题。
这两个分支分别进行递归处理。
课堂练习:选数字
从 1−>n 中选出 m 个数,要求同样的数字不能重复选择,按照字典序正序输出所有方案。
例如:从 1 到 4 中选出 2 个数,共有 6 种方法,按照字典序输出,依次为:
1 2
1 3
1 4
2 3
2 4
3 4
输入格式
输入共2个数n,m,中间用空格分隔。(1 <= m <= n <= 20)
输出格式
按照字典序正序输出所有方案。
输入样例
4 2
输出样例
1 2
1 3
1 4
2 3
2 4
3 4
数据范围
12% 2 <= n <= 5 1 <= m <= 5 56% 2 <= n <= 15 2 <= m <= 5 100% 2 <= n <= 20 2 <= m <= 17
样例解释
从 1 到 4 中选出 2 个数,共有 6 种方法,按照字典序输出,依次为:
1 2
1 3
1 4
2 3
2 4
3 4
程序1答案
#include<bits/stdc++.h>
using namespace std;
int m,n,s[20];
void ac(int a,int b){
if(a==m){
for(int k=0;k<m;k++){
cout<<s[k]<<" ";
}
cout<<endl;
return ;
}
e