NYOJ 32 组合数

来源:互联网 发布:怎么证明我是我知乎 编辑:程序博客网 时间:2024/05/29 16:34

描述

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

输出

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

样例输入

5 3

样例输出

543 
542 
541 
532 
531 
521 
432 
431 
421 
321

C++

 #include<iostream>using namespace std;int m,n;void dg(int x,int y){    int a,b,c,d;    if(y==1)    {        for(a=x;a>=1;a--)        {            m=m+a;            cout<<m<<endl;            m=m-a;        }        return ;    }    c=y-1;d=x;    for(a=x;a>=y;a--)    {        m=(m+a)*10;        d--;        dg(d,c);        m=m/10-a;    }    return ;}int main(){    int a,b,c,d,e,f;    cin>>a>>b;    d=a;e=b-1;    for(c=a;c>=b;c--)    {        m=0;        m=(m+c)*10;        d--;        dg(d,e);        m=m/10-c;    }    return 0;}        





原创粉丝点击