遞迴**:
#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
the total path is: 40
process returned 0 (0x0) execution time : 4.922 s
press any key to continue.
非遞迴**:
#includeusing namespace std;
int main()
; cout << "enter n_case(0<= n_case <= 20): " << endl;
cin >> n_case;
for(int i= 0,j = 1; i <= m; ++i)
a[i][j] = 1; //只有乙個盤子時,無論蘋果多少都只有一種放法
for(int i = 0, j = 0; j <= n; ++j)
a[i][j] = 1; //沒有蘋果時,定義為一種放法
for(int i = 1; i <= m; ++i)
for(int j = 1; j <= i; ++j)
while(n_case--)
return 0;
}
說明:這個**有問題,m或n輸入值一旦超過10的話,就出錯,問題出在那裡還不清楚,有待改正……
同時歡迎提出寶貴意見,以幫助我改進,不勝感激!!!
——桑海整理
遞迴 放蘋果
問題描述 把 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。輸出要求 對輸入的每組資料...
放蘋果 遞迴
小蒜想知道把 mmm 個同樣的蘋果放在 nnn 個同樣的盤子裡,允許有的盤子空著不放,共有多少種不同的分法?用 kkk 表示 555,111,111 和 111,555,111 是同一種分法。輸入格式 第一行是測試資料的數目 t 0 t 20 t 0 le t le 20 t 0 t 20 以下每行...