南阳oj 32 组合数

组合数

描述
找出从自然数1、2、… 、n(0<n<10)中任取r(0<r<=n)个数的所有组合。

输入
输入n、r。
输出
按特定顺序输出所有组合。
特定顺序:每一个组合中的值从大到小排列,组合之间按逆字典序排列。
样例输入
5 3
样例输出
543
542
541
532
531
521
432
431
421
321
学习递归之路  加油

#include<iostream>
#include<algorithm>
using namespace std;
int a[10];
int n,m,c;
void dfs(int n,int m)
{
    for(int i=n;i>0;i--)
    {
        a[m]=i;
        if(m>1)
        {
            dfs(i-1,m-1);
        }
        else
        {
            for(int i=c;i>0;i--)
            {
                cout<<a[i];
            }
            cout<<endl;
        }
    }
}
int main()
{
    int n,m;
    cin>>n>>m;
    c=m;
    dfs(n,m);
    return 0;
}
posted @ 2017-04-28 15:42  南风古  阅读(152)  评论(0编辑  收藏  举报