运行环境:赛码网
题目描述
一个游戏中玩家总经验值达到200就可以到达2级,达到400可以升到3级,达到600可升4级,达到800可升5级依此类推(玩家新创建的角色为0经验1级)。游戏中有一种超级经验丹,玩家1级的时候使用超级经验丹可获得3点经验,2级的时候使用可获得6点经验,3级的时候使用可获得12点经验,4级的时候使用可获得24点依此类推
一个新手玩家完成了新手任务获得75点经验值,正好遇到游戏一周的庆典活动玩家能获得n(1 < n <=100)个经验丹。求玩家一次性使用当前背包中的n个超级经验丹玩家可达到多少级
输入
输入数据有多组,每组占一行,输入数据为整数n(1 < n <=100)
输出
对于每个测试实例,要求玩家应升到的等级,如果输入实例超出规定范围,则输出“no”;每个测试实例的输出占一行
样例输入
20
样例输出
1
思路
由于经验丹是小于100个的,加上最初的75点,最多升到4级,故用if…else即可
package com.vapy.offer;
/**
*
* @author vapy 2016年9月28日
*
*/
import java.util.Scanner;
public class Main5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int input = 0;
while(sc.hasNextInt()) {
input = sc.nextInt();
func(input);
}
}
public static void func(int input) {
int exp = 75;
if(input < 2 || input > 100) {
System.out.println("no");
return;
}
int result = 1;
while(input > 0) {
if(exp < 200) {
exp += 3;
} else if(exp < 400) {
exp += 6;
result = 2;
} else if(exp < 600){
exp += 12;
result = 3;
} else {
exp += 24;
result = 4;
}
input --;
}
System.out.println(result);
}
}
本文代码可在github查看:点击此处