描述

找出从自然数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;
}