You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python入门者求助:浮点数乘法实现每日里程递增计算失败

解决每日跑步里程递增计算的问题

嘿,我一眼就看出你代码里的核心问题啦——你对“每日增加10%”的计算逻辑搞反了!

问题根源

你写的nextday = nextday * (10/100)或者nextday = nextday * 0.10,是把当天的里程变成前一天的10%,这会让里程越来越少,完全不符合“每天增加10%”的要求。正确的计算应该是:当天里程 = 前一天里程 × 1.1(也就是在原基础上增加10%)。

另外你的循环条件也会因为这个错误陷入死循环:因为里程一直在变小,firstday <= event的条件永远成立,程序就一直跑下去,自然没输出。

修正后的代码

firstday = float(input("How many miles you will run the first day? "))
event = float(input("How many miles is the event? "))

# 先处理首日就达标的情况
if firstday >= event:
    print(0)
else:
    current_miles = firstday
    days = 0
    while current_miles < event:
        current_miles *= 1.1  # 每天增加10%,等价于乘以1.1
        days += 1
    print(days)

代码解释

  1. 初始判断:如果第一天的里程已经达到或超过赛事要求,直接输出0天,逻辑更严谨。
  2. 正确的递增逻辑:current_miles *= 1.1是current_miles = current_miles * 1.1的简写,完美实现“每日增加10%”的要求。
  3. 循环终止条件:当当前里程超过赛事要求时,停止循环并输出天数。

举个例子验证

比如输入首日跑5英里,赛事要求10英里:

  • 第1天:5 × 1.1 = 5.5英里
  • 第2天:5.5 × 1.1 = 6.05英里
  • ...
  • 第8天:5 × 1.1^7 ≈ 9.74英里,还没到10
  • 第9天:9.74 ×1.1≈10.71英里,达标,所以输出9天

这样运行就会正常输出结果啦!

内容的提问来源于stack exchange,提问作者devil25machina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:40:13