| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2298 人关注过本帖
标题:关于换钱的问题
只看楼主 加入收藏
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
Input Money:100
19*5+2*2+1*1
18*5+4*2+2*1
17*5+6*2+3*1
16*5+8*2+4*1
15*5+10*2+5*1
14*5+12*2+6*1
13*5+14*2+7*1
12*5+16*2+8*1
11*5+18*2+9*1
10*5+20*2+10*1
9*5+22*2+11*1
8*5+24*2+12*1
7*5+26*2+13*1
6*5+28*2+14*1
5*5+30*2+15*1
4*5+32*2+16*1
3*5+34*2+17*1
2*5+36*2+18*1
1*5+38*2+19*1
0*5+40*2+20*1
0*5+39*2+22*1
0*5+38*2+24*1
0*5+37*2+26*1
0*5+36*2+28*1
0*5+35*2+30*1
0*5+34*2+32*1
0*5+33*2+34*1
0*5+32*2+36*1
0*5+31*2+38*1
0*5+30*2+40*1
0*5+29*2+42*1
0*5+28*2+44*1
0*5+27*2+46*1
0*5+26*2+48*1
0*5+25*2+50*1
0*5+24*2+52*1
0*5+23*2+54*1
0*5+22*2+56*1
0*5+21*2+58*1
0*5+20*2+60*1
0*5+19*2+62*1
0*5+18*2+64*1
0*5+17*2+66*1
0*5+16*2+68*1
0*5+15*2+70*1
0*5+14*2+72*1
0*5+13*2+74*1
0*5+12*2+76*1
0*5+11*2+78*1
0*5+10*2+80*1
0*5+9*2+82*1
0*5+8*2+84*1
0*5+7*2+86*1
0*5+6*2+88*1
0*5+5*2+90*1
0*5+4*2+92*1
0*5+3*2+94*1
0*5+2*2+96*1
0*5+1*2+98*1
0*5+0*2+100*1
sum=60 Press any key to continue


你的结果,你自己看看对不对?

2006-11-04 15:15
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
是错了
改进一下
2006-11-04 15:24
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 

我改了下,不怎么好
期待你的改进版


#define NUM 100
#include<stdio.h>
int GiveChange(int num5,int num2,int num1)
{
long sum=0;
int five,two,one;
for(five=num5;five>=0;five--)
{
two=num2+(num5-five)*5/2;
one=num1+(num5-five)*5%2;
sum++;
printf("%d*5+%d*2+%d*1\n",five,two,one);
while(two>0)
{
two--;
one+=2;
sum++;
printf("%d*5+%d*2+%d*1\n",five,two,one);
}
}
printf("sum=%ld ",sum);

return 1;
}

int main()
{
int num=NUM;

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

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

}


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

int main()
{
int f,t,o;
int sum=0;
int num=100;

for(f=0;f<=num/5;f++)
for(t=0,o=num-f*5;o>=num%2;o-=2,t++)
{
printf("one=%d,two=%d,five=%d\n",o,t,f);
}

getch();
}

这是简单的版本
当然也是最无耻的版本

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

int main()
{
int f,t,o;
int sum=0;
int num=100;

for(f=0;f<=num/5;f++)
for(t=0,o=num-f*5;o>=num%2;o-=2,t++)
{
printf("one=%d,two=%d,five=%d\n",o,t,f);
}

getch();
}

这是简单的版本
当然也是最无耻的版本

你这个num是不能改的.或者说它必须是5的倍数


2006-11-04 16:38
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
没细看
那个肯定是没发展的
等等再改那个
我先想想我原先的那个算法怎么弄
2006-11-04 16:40
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
那原来的算法或者思想是什么啊?
和我23楼的那个差很多吗?

2006-11-04 16:44
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
是我疏忽了一个地方造成的
我的想法是按序拆分
你的是循序渐进反复拆分

你的算法除了在计算上可能再精简一下
其他可以说是最简
因为没有了判断那就没有浪费
2006-11-04 16:53
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用我不是郭靖在2006-11-4 16:38:18的发言:

你这个num是不能改的.或者说它必须是5的倍数

不是吧
好象什么数都行
但是有个地方我写错了:

int main()
{
int f,t,o;
int sum=0;
int num=100;

for(f=0;f<=num/5;f++)
for(t=0,o=num-f*5;o>=0;o-=2,t++)
{
printf("one=%d,two=%d,five=%d\n",o,t,f);
}

getch();
}

2006-11-04 17:06
yanjiyu
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-11-3
收藏
得分:0 
各位大虾算这样的题是不是有一种思想啊 老师好像说了。。
2006-11-04 17:07
快速回复:关于换钱的问题
数据加载中...
 
   



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

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