整数划分(二)
时间限制:
1000
ms | 内存限制:
65535
KB
难度:
3
-
描述
-
把一个正整数m分成n个正整数的和,有多少种分法?
例:把5分成3个正正数的和,有两种分法:
1 1 3
1 2 2
AC代码
#include<stdio.h>
int a[110][110];
int fun(int n,int k)
{
if(n<=0||k<=0)
return 0;
if(k==1)
return 1;
if(a[n][k])
return a[n][k];
return a[n][k]=fun(n-1,k-1)+fun(n-k,k);
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,k;
scanf("%d%d",&n,&k);
printf("%d\n",fun(n,k));
}
}