羊屎 2024-09-28 16:20 采纳率: 0%
浏览 34

计算位置x到y的最小步数

问题描述

AB 实验同学每天都很苦恼如何可以更好地进行 AB 实验,每一步的流程很重要,我们目标为了缩短所需的步数。

我们假设每一步对应到每一个位置。从一个整数位置 x 走到另外一个整数位置 y,每一步的长度是正整数,每步的值等于上一步的值 -1+0+1。求 xy 最少走几步。并且第一步必须是 1,最后一步必须是 1,从 xy 最少需要多少步。

样例说明

  • 整数位置 x6,另外一个整数位置 y12 ,我们需要从 x 走到 y,最小的步数为:1221,所以我们需要走 4 步。
  • 整数位置 x34,另外一个整数位置 y45,我们需要从 x 走到 y,最小的步数为:123221,所以我们需要走 6 步。
  • 整数位置 x30,另外一个整数位置 y50,我们需要从 x 走到 y,最小的步数为:12344321,所以我们需要走 8 步。

输入格式

输入包含 2 个整数 xy。(0<=x<=y<2^31

输出格式

对于每一组数据,输出一行,仅包含一个整数,从 xy 所需最小步数。

输入样例

6 12
34 45
30 50

输出样例

4
6
8
  • 写回答

2条回答 默认 最新

  • Halitum16 2024-09-28 17:06
    关注
    
    import math
    
    def get_even_res(lenth):
        expression = 1 + 4*lenth
        res = math.sqrt(expression) - 1
        return int(res)
    
    def solution(x_position, y_position):
        lenth = y_position - x_position
        if not lenth:
            return 4
        if lenth == 1:
            return 3
        if lenth % 2 == 0:
            return get_even_res(lenth)
        else:
            return get_even_res(lenth+1)
        
    
    if __name__ == "__main__":
        #  You can add more test cases here
        print(solution(6, 12) == 4 )
        print(solution(34, 45) == 6)
        print(solution(30, 50) == 8)
    
    评论

报告相同问题?

问题事件

  • 修改了问题 9月28日
  • 创建了问题 9月28日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?