放蘋果問題臨界誤區

2021-10-24 15:40:28 字數 594 閱讀 5363

放蘋果是很簡單的題目,就是n個蘋果放到k個盤子裡面,有多少種方法(1 2和2 1是一種方法)。

當然,也有比較隱晦的題目描述。

給乙個正數n,你可以使用k個不大於n的正整數數,使得k個數的和為n。給出方案數。

樣例輸入:(5, 2)

輸出:3

解釋:5 = 5, 5 = 1+4, 5 = 2+3

很經典的遞迴問題,直接上**。當然,可以用記憶陣列儲存起來,但是這裡不是重點。。。。 絕對不是因為懶得寫

//n個蘋果放到k個盤子裡面

intf

(int n,

int k)

這裡為什麼n<=0的時候要返回1??

按道理來說0個蘋果放到k個盤子裡面,應該是0種方案啊。

分析一下,如果f(2, 2)會發生什麼?

f(2,2)= f(0,2)+f(2,1)。對應的情況就是2個蘋果分別放在兩個盤子裡面f(0,2)和 兩個蘋果放在乙個盤子裡面f(2, 1)。

這樣,如果n <= 0返回0的話,兩個蘋果分別放在兩個盤子裡面就會返回0了

所以一定要記住,n<=0的時候要返回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...

放蘋果問題

description 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。input 第一行是測試資料的數目t 0 t 20 以下每行均包含二個整數m和n,以空格分開。1 m,n 10。output 對輸入的每組資料m...