放苹果问题 POJ 1664
生活随笔
收集整理的這篇文章主要介紹了
放苹果问题 POJ 1664
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
M個蘋果放到N個盤子里一共會有多少種不同的方法。比如在M=7,N = 3的情況中,(1 5 1) (5 1 1)是同一種情況。
? f(1, N) = 1 f(M, 1) = 1 ? 當N > M時,也就是說蘋果一定不能把所有的盤子都占用,那么它與用N-1個盤子的結果是一樣的。 f(M, N) = f(M, N - 1) 當N <= M時,分為兩種情況,第一種情況是說有的盤子都占了,每個至少放一個,剩下M-N個蘋果放到N個盤子里;第二種情況沒有全部用到,就是將M個蘋果放到N-1個盤子里。 f(M, N) = f(M-N, N) + f(M, N-1) 1 #include <iostream> 2 using namespace std; 3 4 int f(int M, int N) 5 { 6 if(M == 1 || N == 1) return 1; 7 else if(N > M) return f(M, N-1); 8 else return f(M-N, N) + f(M, N-1); 9 } 10 11 int main() 12 { 13 int M, N, num; 14 cin >> num; 15 for(int i = 0; i < num; i++) { 16 cin >> M >> N; 17 cout << f(M, N) << endl; 18 } 19 return 0; 20 }?
轉載于:https://www.cnblogs.com/li-qiang/p/3753992.html
總結
以上是生活随笔為你收集整理的放苹果问题 POJ 1664的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaEE5种常见的设计模式
- 下一篇: 减少过程中的浪费(2/2)