放蘋果是很簡單的題目,就是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...