关于递归- -纪念

来源:互联网 发布:rt809h编程器使用视频 编辑:程序博客网 时间:2024/06/16 05:52

上个学期的某一天 在我学会动态规划之后
就想实现一种排列组合的代码
就比如 5 3
1 2 3 4 5

5 31 2 3 4 51 2 31 2 41 2 51 3 41 3 51 4 52 3 42 3 52 4 53 4 5Process returned 0 (0x0)   execution time : 2.985 sPress any key to continue.由于不会递归  卡了我半年- - 

大致的感觉就是

1 2 3 4 51 2 3 4 51 2 3 4 5就是第一行选第一个开头 之后下面可以选2 3 4 5第三行选3 4 5= = 然后  理解递归就能写出来了- -纪念自己可以搞搜索算法了  这是一个开始
#include<iostream>#include<cmath>using namespace std;int a[21],ans=0,n,k;int df[100];void ss(int t, int l){        df[t]=a[l];        if (t+1 == k&&l<n)        {            for(int j=0;j<=t;j++)                cout<<df[j]<<' ';            cout<<endl;        }        for (int i = l+1;i<n;i++)        {            ss(t+1, i);        }}int main(){        cin>>n>>k;        for (int i= 0;i<n;i++) cin >> a[i];        for(int i=0;i<n;i++)        ss(0, i);}
0 0
原创粉丝点击