Posted on 2012-01-04 15:26
C小加 阅读(214)
评论(0) 编辑 收藏 引用 所属分类:
解题报告
点击查看题目
我用的是递归。从大到小枚举,用一个数组储存,每到一次边界输出一次。
#include<iostream>
#include<cstdio>
using namespace std;
int n,r;
int s[13];
void fun(int x,int num)
{
s[num-1]=x;
if(num==r)
{
for(int i=0;i<r;i++)
{
printf("%d",s[i]);
}
printf("\n");
return;
}
num++;
for(int i=x-1;i>=1;i--)
{
fun(i,num);
}
}
int main()
{
while(scanf("%d %d",&n,&r)!=EOF)
{
for(int i=n;i>=r;i--)
fun(i,1);
}
return 0;
}