测试点#3 R E求助
查看原帖
测试点#3 R E求助
1636183
peach0x33a楼主2025/1/8 19:27

我的提交如下:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double hp = 10;
        int level = 0;
        int exp = 0;

        int ActionCnts = scanner.nextInt();

        for (int i = 0; i < ActionCnts; i++) {
            double cost_hp  = scanner.nextDouble();
            int xp = scanner.nextInt();

            // 先算血量
            hp -= cost_hp;
            // 血量小于等于0立马去世
            if (hp <= 0){
                break;
            }
            // 生命值上限为 10
            if (hp > 10) {
                hp = 10;
            }

            exp += xp;
        }

        // 计算升级花费的经验 2的m次方
        double upgrade_cost_xp = Math.pow(2,level);
        while (exp >= upgrade_cost_xp){
//          当 行动给予的经验 大于等于 升级所消耗的经验时 , 消耗经验并且升级 , 剩余的经验给到xp
//          一切结束以后,重新计算升级消耗
            exp -= upgrade_cost_xp;
            level ++;
            upgrade_cost_xp = Math.pow(2,level);
        }

        System.out.printf(level + " " + exp);

    }
}

2025/1/8 19:27
加载中...