43.放苹果(递归练习)
放蘋果
總時間限制:?
1000ms
?
內存限制:?
65536kB
描述
把M個同樣的蘋果放在N個同樣的盤子里,允許有的盤子空著不放,問共有多少種不同的分法?(用K表示)5,1,1和1,5,1 是同一種分法。
輸入
第一行是測試數(shù)據(jù)的數(shù)目t(0 <= t <= 20)。以下每行均包含二個整數(shù)M和N,以空格分開。1<=M,N<=10。
輸出
對輸入的每組數(shù)據(jù)M和N,用一行輸出相應的K。
樣例輸入
1
7 3
樣例輸出
8
分析:
這是“數(shù)的劃分”那道題的變式,無非就是籃子可以為空不同而已,就加一個for循環(huán)就行了
代碼:
#include
using namespace std;
int f(int,int,int);
int t;
#include
int main()
{
?????? scanf("%d",&t);
?????? for(int i=1;i<=t;++i)
?????? {
????????????? int m,n;
????????????? long long sum=0;
????????????? scanf("%d%d",&m,&n);
????????????? for(int j=1;j<=n;++j)
????????????? sum+=f(m,j,1);
????????????? printf("%lld\n",sum);
?????? }
?????? return 0;
}
int f(int a,int b,int c)
{
?????? int g=0;
?????? if(b==1) return 1;
?????? else{
????????????? for(int i=c;i<=a/b;++i)
????????????? g+=f(a-i,b-1,i);
????????????? return g;
?????? }
}
轉載于:https://www.cnblogs.com/c1299401227/p/5370780.html
總結
以上是生活随笔為你收集整理的43.放苹果(递归练习)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sublime Text 3 及Pack
- 下一篇: 知识点回顾-简单的TableView单组