【原创】Python 解一个数学题

本文解析如何使用Python解决商品购买问题,涉及每满0.1元减0.08的优惠策略,目标是使商品金额减去优惠金额等于3.99元。关键步骤包括整数优惠次数计算和浮点数处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:商品0.07一个,每满0.1元减0.08,请问要买多少个,可以使得商品金额-优惠金额=3.99元

刚拿到题目,用纸笔来解,是 285,但这个答案是错的。

用Python 解:

for num in range(200, 300):
x = 0.07 * num
y = int(x/0.1)*0.08
s = ((int)((x-y)*100))/100
print(num, x, y, s)
if s== 3.99:
print(“==========”+str(num))
break

答案:281
要注意两个要点:
1.优惠次数要取整,就是:int(x/0.1)
2. Python 和 Java

浮点数用用二进制表示的时候只能表示近似值,虽然我们看到的是 0.645,实际上 Python 存储的是 0.645000000000000017763568394002504646778106689453125,Python 是按照 IEEE754 标准存储浮点数的

要这样算,来取小数点后两位:s = ((int)((x-y)*100))/100

引用: https://www.51cto.com/article/718888.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值