NYOJ 组合数

 组合数


题目描述

找出从自然数1、2、... 、n(0 
  

输入

输入n、r。

输出

按特定顺序输出所有组合。
特定顺序:每一个组合中的值从大到小排列,组合之间按逆字典序排列。

样例输入

复制
5 3

样例输出

复制
543
542
541
532
531
521
432
431
421
321

提示

来源

nyoj
 
   
代码:
 
   
#include
int n,r,a[105];
void dfs(int m,int k)
{
    for(int i=m;i>0;i--)
    {
        a[k]=i;
        if(k>1)
            dfs(i-1,k-1);
        else
        {
            for(int i=r;i>0;i--)
                printf("%d",a[i]);
            printf("\n");
        }
    }
}
int main()
{
   while(~scanf("%d%d",&n,&r))
   {
       dfs(n,r);
   }
   return 0;
}


你可能感兴趣的:(搜索)