NYOJ176整数划分(二)
整数划分(二)
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描述
-
把一个正整数m分成n个正整数的和,有多少种分法?
例:把5分成3个正正数的和,有两种分法:
1 1 3
1 2 2
- 输入
- 第一行是一个整数T表示共有T组测试数据(T<=50)
每组测试数据都是两个正整数m,n,其中(1<=n<=m<=100),分别表示要拆分的正数和拆分的正整数的个数。 - 输出
- 输出拆分的方法的数目。
- 样例输入
-
2 5 2 5 3
- 样例输出
-
2 2
View Code
1 2 #include<stdio.h> 3 int fan(int m,int n) 4 { 5 if(m<n)return 0; 6 else if(m==n||n==1)return 1; 7 else return fan(m-1,n-1)+fan(m-n,n); 8 } 9 int main() 10 { 11 int ncase,m,n; 12 scanf("%d",&ncase); 13 while(ncase--) 14 { 15 scanf("%d%d",&m,&n); 16 printf("%d\n",fan(m,n)); 17 } 18 return 0; 19 } 20
posted on 2012-11-14 21:40 LinuxPanda 阅读(205) 评论(0) 编辑 收藏 举报