递归
一场足球赛开始前,售票工作正在紧张的进行中,每张球票为50元。
现有2n个人排队等待购票,其中有n 个人手持50元的钞票,
另外n个人手持100元的钞票。 假设开始售票时售票处没有零钱,
问这2n个人有多少种排队方式,使售票处不至出现找不开钱的局面?
#include <stdio.h> int f(int a,int b) { if(a<b) return 0; else if(b==0) return 1; else if(b<=a) return f(a-1,b)+f(a,b-1) ; } int main() { int n ; while(scanf("%d",&n),n) printf("%d",f(n,n)); return 0; } #include <stdio.h> int f(int a,int b) { if(b==0) return 1 ; if(a<b) return 0 ; else return f(a-1,b)+f(a,b-1) ; } int main() { int n ; while(scanf("%d",&n),n) printf("%d\n",f(n,n)); return 0; }