NYOJ 题目176整数划分(二)(递归)

来源:互联网 发布:淘宝运营简历模板下载 编辑:程序博客网 时间:2024/04/30 21:23


整数划分(二)

时间限制: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),分别表示要拆分的正数和拆分的正整数的个数。
输出
输出拆分的方法的数目。
样例输入
25 25 3
样例输出
22
来源
[张云聪]原创
上传者
张云聪

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));}}


0 0