发信人: 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]
|
|