题意:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?
思路:递推。分为两种情况,有空盘子和没有空盘子。
输入:
1
7 3
输出:
8
#include <stdio.h>
int n,m,t;
int apple(int x,int y){//x个苹果放入y个盘子
int i,res = 0;
if(x<y)
return apple(x,x);
if(y==1 || x==1)
return 1;
if(x == y)
return apple(x,y-1)+1;
return apple(x,y-1)+apple(x-y,y);
}
int main(){
freopen("a.txt","r",stdin);
scanf("%d",&t);
while(t--){
scanf("%d %d",&n,&m);
printf("%d\n",apple(n,m));
}
return 0;
}
本文通过递归算法探讨了将M个苹果放入N个盘子的不同分法,包括有空盘子和无空盘子的情况。通过实例分析,展示了如何通过编程实现这一过程,并提供了具体的代码实现。
1442

被折叠的 条评论
为什么被折叠?



