鱼C论坛

 找回密码
 立即注册
123
返回列表 发新帖
楼主: zltzlt

[已解决]Python:每日一题 364

[复制链接]
发表于 2020-4-2 18:17:07 | 显示全部楼层
快马加鞭未下鞍 发表于 2020-4-2 18:02
这个为什么可以这样算啊,真的神奇


这是逻辑问题
解题思路是这样的,
想象着每次都向着target走,走到第k次的时候,一共走了m步,还没到target,
第k+1次,走了n(n=m+k+1)步,就走过了,走过了就要向回走,
看看和target差几步,l=n-target,
若l是偶数,则可以有b=l/2,这时候,想象着前面走第b次的时候,不向前走而是向后走,
那样的话,第k+1次所走的总步数就是n-2*b,这就刚好到达target了。
若l不是偶数,那就再向前走一次,直到总步数与target的差值为偶数,再走一次或者两次肯定会有结果。

你可以看看,我写的两个版本,第一个从第一次走就开始循环,时间比较长;第二个版本直接算出k然后向后进行循环的,耗时比较少
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-2 18:48:58 | 显示全部楼层
sunrise085 发表于 2020-4-2 18:17
这是逻辑问题
解题思路是这样的,
想象着每次都向着target走,走到第k次的时候,一共走了m步,还没到 ...

谢谢了,终于明白了,思路真的很重要啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 13:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表