遞迴 放蘋果問題和算24問題

2021-08-25 02:30:01 字數 607 閱讀 8971

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...