666 放蘋果 遞迴

2021-10-09 06:05:08 字數 730 閱讀 9483

描述

把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用k表示)5,1,1和1,5,1 是同一種分法。

輸入第一行是測試資料的數目t(0 <= t <= 20)。以下每行均包含二個整數m和n,以空格分開。1<=m,n<=10。

輸出對輸入的每組資料m和n,用一行輸出相應的k。

樣例輸入

1

7 3

樣例輸出

8
思路

這個問題相當於每次往乙個盤子裡放k個蘋果,然後問題轉化成m-k個蘋果放n-1個盤子。並且為了不重複一樣的方法,所以每次放置的個數》=上一輪放置的個數,因此省去判斷n-k>=k的話可以在迴圈的時候設定k<=n/2,如果這樣不好理解就看版本二,直接在遞迴結束判斷返回不和條件的。

在想明白遞迴i關係之後就可以愉快的寫程式呢。

**

#includeusing namespace std;

int get(int m,int n,int p)

return count;

}int main()

cout << count《另乙個版本

#includeusing namespace std;

int get(int m,int n,int p)

cout << count<} return 0;

}

(遞迴)666 放蘋果

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

遞迴 放蘋果

遞迴 includeusing namespace std int count int m,int n int main 執行結果 enter n case 2enter two intengers 7 3the total path is 8 enter two intengers 10 8 th...

遞迴 放蘋果

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