发信人: mrcloud() 
整理人: softlag(2000-05-29 12:03:52), 站内信件
 | 
 
 
【 在 x_cat (X-cat) 的大作中提到: 】
 : 小弟初学算法,近日被一问题困扰:
 : 苹果 1元/个, 桔子 2 元/个, 芒果 4元/个,
 : 若是用10元去买, 有几种组合呢?
 : 要求使用递归算法.
 :    .......
 
 老山羊又想溜了,hehe,不过这道题比背包问题简单多了,
 我做了一下,你看看对不对?
 
 #include <iostream.h>
 
 const int MONEY = 10;
 int a=1,b=2,c=4;
 
 int SpendMoney(int m,int lm)
 {
   if(m<lm) return 0;
 
   int t = 0;
 
   if(lm<=a){
     if(m==a) return t+1;
     else t+=SpendMoney(m-a,a);
   }
   if(lm<=b){
     if(m==b) return t+1;
     else t+=SpendMoney(m-b,b);
   }
   if(lm<=c){
     if(m==c) return t+1;
     else t+=SpendMoney(m-c,c);
   }
 
   return t;
 }
 
 int main()
 {
   cout << "Total: " << SpendMoney(MONEY,0) << endl;
   return 0;
 }
 
  -- ...我是在黑夜里展翅飞翔的恐怖...
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 61.129.16.228]
  | 
 
 
 |