1.題目描述:把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?
(5 1 1和1 5 1是同一種分法。)
輸入:第一行是測試資料的數目t(0<=t<=20),以下每行均包括兩個整數m和n,以空格分開。1<=m,n<=10
樣例輸入:
17 3
樣例輸出:
8思路:
設i個蘋果放在k個盤子裡方法總數是f(i,k)
則:k>i時,f(i,k)=f(i,i);
k<=i時,總方法=至少有乙個盤子為空的放法+沒盤子為空的放法
f(i,k)=f(i,k-1)+f(i-k,k)
#include using namespace std;
int func(int m,int n)
int main()
bool count24(double a,int n)
double b[5];
for(int i=0;i>a[i];
}if(count24(a,4))
cout<<"yes"
cout<<"no"
}
整數劃分問題(放蘋果問題)(遞迴)
將正整數n 表示成一系列正整數之和,n n1 n2 nk,其中n1 n2 nk 1 k 1 正整數n 的這種表示稱為正整數n 的劃分。正整數n 的不同的劃分個數稱為正整數n 的劃分數。標準的輸入包含若干組測試資料。每組測試資料是乙個整數n 0 n 50 對於每組測試資料,輸出n的劃分數。5,4 1,...
放蘋果問題
題目來自 總時間限制 1000ms 記憶體限制 65536kb 描述 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。輸入第一行是測試資料的數目t 0 t 20 以下每行均包含二個整數m和n,以空格分開。1 m,n ...
放蘋果問題
問題描述 將m個蘋果放到n個空盤子中,允許盤子為空,允許乙個盤子放任意個蘋果,問總共有多少種放法。注意,不考慮盤子的次序,比如,將7個蘋果放到3個盤子中,5 1 1和1 5 1是同一種放法。解答 假設將m個蘋果放到n個盤子中的放法有f m,n 種,從最簡單的情況考慮起。當m 0或者n 0,f m,n...