扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
由程序的要求我们可以得到,找50元的5张,找5元的6张,找1元的3张。可以直接用取余等操作算出来,或者用贪心思想解决问题,但是用取余简单。
创新互联建站-专业网站定制、快速模板网站建设、高性价比太子河网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式太子河网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖太子河地区。费用合理售后完善,十多年实体公司更值得信赖。
正确代码:
count=283
x = int(count/50)
y = int((count-x*50)/5)
z=count-(x*50)-(y*5)
print('找零{}元其中\n50元:{}张\n5元: {}张\n1元: {}张\n'.format(count,x,y,z))
扩展资料:
Python的优缺点:
优点:
1、简单,Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。
2、易学,Python极其容易上手,因为Python有极其简单的说明文档。
3、速度快,Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。
4、免费、开源,Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。
5、高层语言,用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
6、可移植性,由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。
7、解释性,一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。
8、规范的代码,Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。
缺点:
运行速度慢:这里是指与C和C++相比。
参考资料来源:百度百科-Python
没看懂你的需求,不过出错的原因是因为除号用错了,下面这样就行了
# -*- coding: cp936 -*-
def main():
j=input("输入价格:(元)")
zz=(1-j)*100
a1,a2=zhaolin(zz,50)
b1,b2=zhaolin(a2,20)
c1,c2=zhaolin(b2,10)
d1,d2=zhaolin(c2,5)
e1,e2=zhaolin(d2,2)
f1,f2=zhaolin(e2,1)
print a1,b1,c1,d1,e1,f1
def zhaolin(x,y):
z=x/y
w=x-x/y*y
return z,w
main()
修改了一下,应该满足了你的要求了。
# -*- coding: cp936 -*-
def main():
j=input("输入价格:(元)")
zz = 100 - j*100
zhaolin2(zz)
# a1,a2=zhaolin(zz,50)
# b1,b2=zhaolin(a2,20)
# c1,c2=zhaolin(b2,10)
# d1,d2=zhaolin(c2,5)
# e1,e2=zhaolin(d2,2)
# f1,f2=zhaolin(e2,1)
# print a1,b1,c1,d1,e1,f1
def zhaolin(x,y):
z=x/y
w=x-x/y*y
return z,w
def zhaolin2(x):
linqian_jiao = [50,20,10]
for i in linqian_jiao:
x_tmp = x/i
if x_tmp = 1:
x_tmp = int(x_tmp)
x = x - i*x_tmp
jiao = i/10
print '找您'+ str(x_tmp) + '个' + str(jiao) + '角硬币;'
linqian_fen = [5,2,1]
for i in linqian_fen:
x_tmp = int(x//i)
if x_tmp =1:
x_tmp = int(x_tmp)
x = x - i*x_tmp
x_tmp = int(x_tmp)
print '找您'+ str(x_tmp) + '个' + str(i) + '分硬币;'
main()
这个题目很有意思,外国教材中的作业题目都很精彩。
因为它没有限制零钱的数量,所以只需要按从大到小的顺序找钱就可以了。 这是一个取整运算。
给你讲一个原理,你自己完成细节。
假设商品价格是Y, 客户给钱数是Z, 那么Z-Y的余数就是要找的零钱。
Z-Y的数量依次被50,20,10,5纸币来除,如果还有小数,除不尽,那么继续使用2,1,0.25等等的硬币去除。最终应该刚好除尽。 为了防止浮点运算误差。可以一开始就将Z和Y乘以100,再转换成整数。这样就没有问题了。
求余使用的运算符是%,百分号。 你需要将50,20,10.。。2,1,0.25.。。等等放到一个数组里,依次除,如果余数为0,则break。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流