c 遞迴演算法 放蘋果

2022-09-19 08:33:10 字數 762 閱讀 3204

1.題目描述

小蒜想知道把 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
2.解題思路

將m個蘋果放在n個盤子裡面(f(m,n))

當m當m>=n時可以分為兩種情況:

a,至少有乙個盤子是空的(f(m,n-1)),即有空盤子;

b,沒有空盤子,則每個盤子裡面至少有1個蘋果,每個盤子裡面去掉乙個蘋果不影響方法數目,相當於將m-n個蘋果放在n個盤子裡(f(m-n,n));

3.**

1 #include2

using

namespace

std;

3int f(int m,intn)4

9int

main()

1019

return0;

20 }

遞迴 放蘋果

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

遞迴 放蘋果

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