Python题目,小白请求大神出战

编程小白请求大神赐教

1.对自然数A、B、C,若A<B<C且A*A+B*B=C*C,则称{A,B,C}为一组勾股弦数,其中A、B、C分别称为勾、股、弦。试求出弦为[10,800]内的勾股弦数组的个数。

2.有一个机器人一次可以向(上、下、左、右)四个方向中的一个方向移动1米,指令分别为(U, D, L, R),机器人初始位置在点A,请设计一个程序,当机器人在执行完指令s后离A点距离小于10米,返回True,大于等于10米,返回False例:输入:”UDDU” 输出:True (理由:机器人还在A点)输入:“LLLLLLLLLL” 输出:False (理由:机器人在A点左边10米)

def fun():
    """
    c in [10, 800]
    a in [1, 798]
    b in [a+1, 799]
    """
    array_list = []
    for a in range(1, 800):
        for b in range(a + 1, 800):
            for c in range(10 if b < 10 else b + 1, 801):
                if a * a + b * b == c * c:
                    array = a, b, c
                    print(array)
                    array_list.append(array)

    print(f"[10, 800]内的勾股弦数组共有{len(array_list)}个!")


def robot(command: str):
    """

    :param command: 指令
    :return: 是否在初始位置十米内
    """
    command = command.lower()
    x = command.count('r') - command.count('l')
    y = command.count('u') - command.count('d')
    distance = pow(pow(x, 2) + pow(y, 2), 0.5)
    print(f"机器人坐标:({x}, {y})")

    return distance < 10