描述
把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。輸出要求 對輸入的每組資料...