/* *問題描述:把M個同樣的蘋果放到N個同樣的盤子里面,問有多少種不同的算法? 注意:5 1 1和1 5 1是同一種放法 輸入:輸入一個整數(shù)表示有幾行測試數(shù)據(jù),下面每行分別輸入M和N */ #include <iostream> using namespace std; int f(int m,int n) { if(m < n)//盤子數(shù)比蘋果數(shù)多的情況 return f(m,m); if(m == 0)//沒有蘋果 return 0; if(n == 0)//沒有盤子,就不放,一種算法 return 1; //蘋果不少于盤子的情況 return f(m ,n-1) + f(m-n, n);//有空盤子放法和沒空盤子放法 } int main() { int t,m,n; cin>>t;//有幾組測試數(shù)據(jù) while (t--) { cin >> m>>n; cout<<"放法:"<< f(m , n) <<endl; } return 0; }運行結(jié)果:

新聞熱點
疑難解答