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

三角形路径跑步总距离下,单条边跑过次数的计算及代码实现

问题解决思路与代码实现

核心逻辑拆解

要算出跑过某条边的次数,分两步就行:

  1. 完整圈数的次数:先算三角形周长(30+25+35=90米),每跑一圈,每条边都会被完整跑1次,所以完整圈数就是总距离除以周长的整数部分,这部分每条边的次数等于圈数。
  2. 剩余距离的次数:总距离减去完整圈数的总长度后,剩下的距离会沿着三角形的边依次跑,只要剩余距离够跑完某条边,这条边的次数就加1,直到剩余距离不够跑下一条边为止。

举例计算(560米跑过30米边的次数)

  • 周长=90米,完整圈数=560//90=6圈,这部分30米边跑了6次。
  • 剩余距离=560%90=20米,20米不够跑完30米的边,所以剩余部分不会增加30米边的次数。
  • 总次数=6+0=6次。

如果总距离是125米(1圈+35米):

  • 完整圈数1次,30米边先算1次。
  • 剩余35米先跑30米(剩余5米),30米边次数再加1,总次数变成2次;剩下5米不够跑25米的边,其他边次数不变。

补全后的Python代码

ran = int(input("Dist. ran: "))
a = 30
b = 25
c = 35
perimeter = a + b + c

# 初始化三条边的次数
count_a = count_b = count_c = 0

# 先算完整圈带来的次数
full_cycles = ran // perimeter
count_a += full_cycles
count_b += full_cycles
count_c += full_cycles

# 处理剩余距离
remaining = ran % perimeter
current = remaining

# 按跑步顺序检查剩余距离(假设从30米边起点开始跑)
if current >= a:
    count_a += 1
    current -= a
if current >= b:
    count_b += 1
    current -= b
if current >= c:
    count_c += 1
    current -= c

# 输出结果
print(f"30米边跑过次数: {count_a}")
print(f"25米边跑过次数: {count_b}")
print(f"35米边跑过次数: {count_c}")

代码说明

  • 圈数部分直接用整除计算,简单高效。
  • 剩余距离的处理是按边的顺序依次判断,确保每段剩余距离都被正确分配到对应的边。
  • 如果跑步的起始边不是30米,只需调整剩余距离检查的顺序(比如从25米开始就改成先检查b,再c,再a)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:05:25