整数划分(二)
时间限制: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
-
#include<stdio.h> int g(int m,int n) { if(m<n) return 0; if(m==1||n==1||m==n) return 1; if(m>n) return g(m-1,n-1)+g(m-n,n); } int main() { int t,m,n,s; scanf("%d",&t); while(t--) { scanf("%d%d",&m,&n); printf("%d\n",g(m,n)); } }
- 第一行是一个整数T表示共有T组测试数据(T<=50)