AI 刷题 44. 小E的射击训练 题解 | 豆包MarsCode AI刷题

64 阅读1分钟

要计算小E的射击得分,我们需要根据射击点的坐标 (𝑥,𝑦)(x,y) 计算其到靶心 (0,0)(0,0) 的距离,并根据距离判断得分。

解题思路

  • 计算距离:

  • 使用欧几里得距离公式计算射击点到靶心的距离:distance=𝑥2+𝑦2distance=x2+y2​。

  • 判断得分:

  • 根据计算出的距离,判断射击点落在哪个环内。

  • 如果距离小于等于1,得10分;如果距离在1到2之间,得9分;依此类推。

  • 如果距离大于10,则得0分。

  • 实现步骤:

  • 计算距离。

  • 使用条件判断来确定得分。

代码实现

import math

def calculate_score(x, y):
    # 计算距离
    distance = math.sqrt(x**2 + y**2)
    
    # 判断得分
    for i in range(1, 11):
        if distance <= i:
            return 11 - i
    return 0

复杂度分析

  • 时间复杂度:𝑂(1)O(1),因为计算距离和判断得分的操作都是常数时间内完成的。

  • 空间复杂度:𝑂(1)O(1),因为只使用了固定数量的变量。

通过这种方法,我们可以根据射击点的坐标快速计算出小E的射击得分。