递归思路:
首先介绍void ff( int mm , int nn , int array[]);
mm就是选择的序号,nn就是选择的数,array就是保存的数组
找出结束条件:1.当选择的序号等于最大序号就选择完毕2.在不满足1的条件当选择的数等于最大数
找出递归:先把自己的数保存 然后再找寻下个数的所有条件
#include <iostream>
using namespace std;
int n,m;
int array[100];
void ff(int mm,int nn,int array[]){
if(mm==m){//当选到最后一个数时
if(nn<=n){
array[mm]=nn;
for(int i=1;i<=m;i++)cout<<array[i]<<" ";
cout<<endl;
return;
}
}
if(nn==n)return;//当选择的数是最后一个 但选择序号并不是最后一个
array[mm]=nn;
for(int i=nn+1;i<=n;i++){
ff(mm+1,i,array);
}
}
int main()
{
cin>>n>>m;
ff(0,0,array);
}
京公网安备 11010502036488号