青训营X豆包MarsCode技术训练营|豆包MarsCode AI刷题

83 阅读2分钟

通过对“小E正在训练场进行射击练习,靶有10个环,靶心位于坐标'(0, 0)'。每个环对应不同的得分,靶心内(半径为1)得10分,依次向外的每个环分数减少1分。若射击点在某个半径为'i'的圆内,则得'11-i'分。如果射击点超出所有的环,则得0分。 根据给定的射击坐标'(x, y)',请计算小E的射击得分。”这道题的解析: 为了计算小E的射击得分,我们需要根据给定的坐标'(x, y)'计算其到靶心'(0, 0)'的距离,然后使用欧几里得距离公式计算点'(x, y)'到原点'(0, 0)'的距离。公式为:distance = math.sqrt(x2 + y2)2.确定得分:靶心内(半径为1)得10分,依次向外的每个环分数减少1分。若射击点在某个半径为'i'的圆内,则得'11-i'分。如果射击点超出所有的环,则得0分。3.实现代码。 以下是代码内容: import math def solution(x: int, y: int) -> int: distance = math.sqrt(x2 + y2) if distance <= 1: return 10 elif distance <= 2: return 9 elif distance <= 3: return 8 elif distance <= 4: return 7 elif distance <= 5: return 6 elif distance <= 6: return 5 elif distance <= 7: return 4 elif distance <= 8: return 3 elif distance <= 9: return 2 elif distance <= 10: return 1 else: return 0 if name == 'main': print(solution(1, 0) == 10) # True print(solution(1, 1) == 9) # True print(solution(0, 5) == 6) # True print(solution(3, 4) == 6) # True 这道题运用了许多知识点,有如:导入 'math' 模块,将数学知识(如欧几里得距离公式)应用于实际问题中使用其中的'sqrt' 函数来计算距离,根据射击点的位置来决定得分并计算出的距离,使用一系列的'if-elif-else'语句来确定得分等。 通过这道题的解答,我意识到了以下几个方面,并且学到了一些重要的技能和知识,这些将对我未来的学习和工作产生积极的影响:我学会了如何使用Python编写代码来实现算法,包括如何使用条件判断、函数定义等基本编程结构,以及如何设计一个简单的算法来解决特定问题,这有助于我在未来面对更复杂的问题时,能够有条不紊地进行分析和解决。学习是一个持续的过程,通过不断解决实际问题,我将培养出更强的创新思维能力,通过不断学习新的知识和技能,我将能够在快速变化的世界中始终保持竞争力。