免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 6974 | 回复: 25
打印 上一主题 下一主题

取余测试题一道 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-16 11:28 |只看该作者 |倒序浏览
取一个任意小于1美元的金额,然后计算可以换成最少多少枚硬币。
硬币有1美分、5美分、10美分、25美分4种。
1美元等于100美分。
举例来说,0.76美元换算结果应该是3枚25美分,
76枚一美分,2枚25美分+2枚10美分+1枚5美分+1枚一美分这样的结果都是不符合要求的。

大伙都做做看,怎么样做,怎么最得最简单最高效。

论坛徽章:
0
2 [报告]
发表于 2009-02-16 12:33 |只看该作者

OK了

while True:
    s=float(raw_input("please input numbers(<1))"))
    if s<1:
        s=int(s*100)
        print "%d个美分"%(s/1)
        print "%d个5美分"%(s/5)
        print "%d个10美分"%(s/10)
        print "%d个25美分"%(s/25)
        break

论坛徽章:
0
3 [报告]
发表于 2009-02-16 15:54 |只看该作者
#-*-coding=gbk
def yuan(s):
    if s<100:
        print "%d个美分"%(s/1)
        print "%d个5美分"%(s/5)
        print "%d个10美分"%(s/10)
        print "%d个25美分"%(s/25)
    else:
        print '输入错误!不要超出范围<100美分'
    return s
try:
    yuan(int(raw_input('input numbers,please(<100美分):')))
except ValueError,e:
        print 'ERROR 值错误%s'%e

[ 本帖最后由 caesarok 于 2009-2-16 15:55 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-02-16 19:37 |只看该作者
贪心法.

论坛徽章:
0
5 [报告]
发表于 2009-02-17 10:25 |只看该作者
原帖由 caesarok 于 2009-2-16 15:54 发表
#-*-coding=gbk
def yuan(s):
    if s

return s是否多余的

论坛徽章:
0
6 [报告]
发表于 2009-02-17 10:41 |只看该作者
“贪心法”能求出最优解么?

论坛徽章:
0
7 [报告]
发表于 2009-02-17 10:52 |只看该作者

这个行不

#!/usr/bin/python

a=(0,25,10,5,1)
b=[0,0,0,0,0]
c=[0,0,0,0,0]
s=int(raw_input("please input numbers(<1))"))
if s < 0:
    print "input error"
else:
    b[0]=s
    for i in range(1,5):
        b=b[i-1]%a
        c=(b[i-1]-b)/a
        print a, 'need  ', c

论坛徽章:
0
8 [报告]
发表于 2009-02-17 11:44 |只看该作者
原帖由 小草_cw 于 2009-2-17 10:52 发表
#!/usr/bin/python

a=(0,25,10,5,1)
b=[0,0,0,0,0]
c=[0,0,0,0,0]
s=int(raw_input("please input numbers(

很明显不行啦 b=b[i-1]%a是什么东东啊
b[0]~[3]不都是0   0和tuple不能取模的
还有print a, 'need  ', 这个输出是什么意思
感觉乱七八糟的。。。

论坛徽章:
0
9 [报告]
发表于 2009-02-17 13:31 |只看该作者

??

#!/usr/bin/python

a=(0,25,10,5,1)
b=[0,0,0,0,0]
c=[0,0,0,0,0]
s=int(raw_input("please input numbers(<1))"))
if s < 0:
    print "input error"
else:
    b[0]=s
    for i in range(1,5):
        b=b[i-1]%a
        c=(b[i-1]-b)/a
        print a, 'need  ', c

论坛徽章:
0
10 [报告]
发表于 2009-02-17 13:32 |只看该作者
#!/usr/bin/python

a=(0,25,10,5,1)
b=[0,0,0,0,0]
c=[0,0,0,0,0]
s=int(raw_input("please input numbers(<1))"))
if s < 0:
    print "input error"
else:
    b[0]=s
    for i in range(1,5):
        b=b[i-1]%a
        c=(b[i-1]-b\[i\])/a
        print a\[i\], 'need  ', c\[i\]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP