算法题每日一练 --- 第 3 天:一步之遥
一、问题描述
从昏迷中醒来,小明发现自己被关在 X 星球的废矿车里。 矿车停在平直的废弃的轨道上。 他的面前是两个按钮,分别写着 “F”和 “B”。
小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退。按 F,会前进 97 米。按 B 会后退 127 米。 透过昏暗的灯光,小明看到自己前方 1 米远正好有个监控探头。他必须设法使得矿车正好停在摄像头的下方,才有机会争取同伴的援助。
小明飞快地计算,至少要多少次操作,才能把矿车准确地停在前方 1 米远的地方。
二、解题思路
假设小明站在 x 轴上面,坐标为 0。前面有两个按钮,按 F,前进 97 米。按 B 后退 127 米。向 x 轴正方向移动+97m,向 x 轴负方向移动-127 米。
对于这种题,我们依旧可以选择两种方法,第一种暴力求解,第二种巧用条件。
方法一 暴力法
使用两重 for 循环,第一重表示向前移动 97m 的次数,第二重表示向后移动 127m 的次数。限定最大移动次数,找到需要移动最少的一个。
方法二 公式法
在限定的范围内,加上求解最小值公式 min(a,b),返回 a,b 两个中数据较小的一个,max 则相反
三、编码实现
1.暴力法
复制代码
2.公式法
复制代码
四、输出结果
输出结果 97。
版权声明: 本文为 InfoQ 作者【知心宝贝】的原创文章。
原文链接:【http://xie.infoq.cn/article/85124a649c5e9fe5e26d79d0d】。文章转载请联系作者。
评论