您的位置:首页 > 其它

NYOJ 32 组合数

2012-08-16 21:25 232 查看
地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=32

思路:递归

#include<stdio.h>
#include<stdlib.h>
int a[100];  //存储大数
void f(int m, int k)
{
int i,j;
for(i=m;i>=k;i--)
{
a[k]=i;
if(k>1)
f(i-1,k-1);
else
{
for(j=a[0];j>0;j--)  //这里用a[0]而不用k或者r是因为虽然a[0]和k或r值一样,但a[0]的值是静态的,若用k或者r,那么它们本身在循环中是变化的,就会有些值不能输出
printf("%d",a[j]);
putchar('\n');
}
}
}
int main()
{
int n,r;  //用a[0]存放取几个数
scanf("%d%d",&n,&r);
a[0]=r;
f(n,a[0]);
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: