题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
从昏迷中醒来,小明发现自己被关在 X 星球的废矿车里。 矿车停在平直的废弃的轨道上。 他的面前是两个按钮,分别写着 “F”“F” 和 “B”“B” 。
小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退。 按 FF,会前进 9797 米。按 BB 会后退127127 米。 透过昏暗的灯光,小明看到自己前方 11 米远正好有个监控探头。 他必须设法使得矿车正好停在摄像头的下方,才有机会争取同伴的援助。 或许,通过多次操作 FF 和 BB 可以办到。
矿车上的动力已经不太足,黄色的警示灯在默默闪烁… 每次进行 FF 或 BB 操作都会消耗一定的能量。 小明飞快地计算,至少要多少次操作,才能把矿车准确地停在前方 11 米远的地方。
请问为了达成目标,最少需要操作的次数是多少。
题目解析
这道题目实际上我们可以转为二元一次方程的求解,最后要计算出97x-127y=1的最小x+y的解,我们可以采用暴力求解的方法进行解决。
代码如下:
# 暴力方法
x = 97
y = 127
ans = 600
for i in range(300):
for j in range(300):
if i*x - j* y==1:
ans = min(ans, i+j)
print(ans)
但是时间复杂度为O(n^2),我们可以改用欧几里得算法快速求出x,y.时间复杂度为O(log(min(a,b)))。具体内容查看下面的网站
https://zheng11.blog.csdn.net/article/details/116694484