蓝桥杯——一步之遥

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

从昏迷中醒来,小明发现自己被关在 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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leosaf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值