NYOJ 32 组合数
地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=32
思路:递归
1 #include<stdio.h> 2 #include<stdlib.h> 3 int a[100]; //存储大数 4 void f(int m, int k) 5 { 6 int i,j; 7 for(i=m;i>=k;i--) 8 { 9 a[k]=i; 10 if(k>1) 11 f(i-1,k-1); 12 else 13 { 14 for(j=a[0];j>0;j--) //这里用a[0]而不用k或者r是因为虽然a[0]和k或r值一样,但a[0]的值是静态的,若用k或者r,那么它们本身在循环中是变化的,就会有些值不能输出 15 printf("%d",a[j]); 16 putchar('\n'); 17 } 18 } 19 } 20 int main() 21 { 22 int n,r; //用a[0]存放取几个数 23 scanf("%d%d",&n,&r); 24 a[0]=r; 25 f(n,a[0]); 26 system("pause"); 27 return 0; 28 }