(遞迴)666 放蘋果

2022-03-10 11:53:10 字數 877 閱讀 6694

描述

把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?

(用k表示)5,1,1和1,5,1 是同一種分法。

輸入第一行是測試資料的數目t(0 <= t <= 20)。

以下每行均包含二個整數m和n,以空格分開。1<=m,n<=10。

輸出

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

樣例輸入

7 3樣例輸出

我の思考

這個問題用遞迴的思維來做,我們需要明確,它應該有兩個引數,乙個是蘋果的數量m,乙個是盤子的數量n。

然後我們再根據m與n的比較來劃分情況,注意,它的重複條件。

1.當m>n(蘋果更多)時,每個盤子肯定至少有乙個蘋果,所以我們需要考慮的就是如何把m-n個蘋果放入n個盤子裡面。

2.當m3.當m=n(蘋果和盤子一樣多時),我們可以分為每乙個都放乙個蘋果,也就是1次,還有當空出盤子放的情況。

我の**

#include using

namespace

std;

int func(int m,int

n)

if(n==m)

if(mif(m>n)

}int

main()

return0;

}

我の小結

這類題目應該首先確定好引數的數量,再想辦法找出引數之間的關係組成,從而的到答案。

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