| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2297 人关注过本帖
标题:关于换钱的问题
只看楼主 加入收藏
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

昨天晚上睡觉前又想了想 感觉这个题还有很多值得做的地方
以一角找零做这道题有点白瞎了
大家想想要是1000.00元找成5元2元1元的找发怎么做(当然要强调效率)
或者是任意钱数又怎么做

2006-11-04 07:41
yanjiyu
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-11-3
收藏
得分:0 
对呀 任意钱数的话该如何做呢   小弟不回望各位大虾解答
2006-11-04 08:45
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
这么早就来了
呵呵

你可以自己想想
其实用不着用试值法的 可以直接获得找零的方案啊
2006-11-04 08:47
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

找零用贪心算法比较好.不过对最佳的选择用这个比较好.
枚举也可以,不过麻烦.


倚天照海花无数,流水高山心自知。
2006-11-04 12:31
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
以下是引用cdmalcl在2006-11-4 7:41:17的发言:

昨天晚上睡觉前又想了想 感觉这个题还有很多值得做的地方
以一角找零做这道题有点白瞎了
大家想想要是1000.00元找成5元2元1元的找发怎么做(当然要强调效率)
或者是任意钱数又怎么做

在效率上,似乎有点难。


谁有强殖装甲第二部,可以Q我460054868
2006-11-04 13:02
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

#define NUM 100

int GiveChange(int num5,int num2,int num1)
{
long sum=0;

while(num5>0)
{
num5--;
num2+=2;
num1++;
sum++;
printf("%d*5+%d*2+%d*1\n",num5,num2,num1);
}
while(num2>0)
{
num2--;
num1+=2;
sum++;
printf("%d*5+%d*2+%d*1\n",num5,num2,num1);
}

printf("sum=%ld ",sum);

return 1;
}

main()
{
int num=NUM;

printf("Input Money:");
scanf("%d",&num);

GiveChange(num/5,num%5/2,num%5%2);

getch();
}

这是我做的一个
这样直接就能得到找零方案

2006-11-04 13:07
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
以下是引用cdmalcl在2006-11-4 13:07:25的发言:

#define NUM 100

int GiveChange(int num5,int num2,int num1)
{
long sum=0;

while(num5>0)
{
num5--;
num2+=2;
num1++;
sum++;
printf("%d*5+%d*2+%d*1\n",num5,num2,num1);
}
while(num2>0)
{
num2--;
num1+=2;
sum++;
printf("%d*5+%d*2+%d*1\n",num5,num2,num1);
}

printf("sum=%ld ",sum);

return 1;
}

main()
{
int num=NUM;

printf("Input Money:");
scanf("%d",&num);

GiveChange(num/5,num%5/2,num%5%2);

getch();
}

这是我做的一个
这样直接就能得到找零方案

错误的.那while循环根本就不对.
真不懂你是怎么想的.


2006-11-04 14:57
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

哦?
哪错了?

2006-11-04 14:59
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
难到一个5,就只能换成2个2和1个1啊?
难到就不能换成1个2和3个1,或者5个1啊?
即使这样改了也不对,因为2个5可以换成5个2,或1个2和8个1等等

[此贴子已经被cdmalcl于2006-11-4 15:08:11编辑过]


2006-11-04 15:05
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用我不是郭靖在2006-11-4 15:05:06的发言:
难到一个5,就只能换成2个2和1个1啊?
难到就不能换成1个2和3个1,或者5个1啊?
即使这样改了也不对,因为2个5可以换成5个2,或1个2和8个1等等



我劝你还是好好想想
我没错是你想错了

不好意思刚才点错了

2006-11-04 15:08
快速回复:关于换钱的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018700 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved