问题描述

小E正在训练场进行射击练习,靶有10个环,靶心位于坐标(0, 0)。每个环对应不同的得分,靶心内(半径为1)得10分,依次向外的每个环分数减少1分。若射击点在某个半径为i的圆内,则得11-i分。如果射击点超出所有的环,则得0分。

根据给定的射击坐标(x, y),请计算小E的射击得分。
测试样例

样例1:

输入:x = 1, y = 0
输出:10

样例2:

输入:x = 1, y = 1
输出:9

样例3:

输入:x = 0, y = 5
输出:6

样例4:

输入:x = 3, y = 4
输出:6

代码

public class Main {
public static int solution(int x, int y) {
// 计算射击点到靶心的距离
double distance = Math.sqrt(x * x + y * y);

    // 使用循环来计算得分
    for (int i = 1; i <= 10; i++) {
        if (distance <= i) {
            return 11 - i;  // 返回对应的得分
        }
    }
    
    return 0;  // 超出所有环
}

public static void main(String[] args) {
    System.out.println(solution(1, 0) == 10);  // 输出: true
    System.out.println(solution(1, 1) == 9);   // 输出: true
    System.out.println(solution(0, 5) == 6);   // 输出: true
    System.out.println(solution(3, 4) == 6);   // 输出: true
}

}

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐