题目
介绍:
第1世纪是从年1 到包括年100,2世纪是从当年101直至并包括年200,以此类推。
任务:
给定某一年,返回它所处的世纪。
输入,输出示例:
centuryFromYear(1705) returns (18)
centuryFromYear(1900) returns (19)
centuryFromYear(1601) returns (17)
centuryFromYear(2000) returns (20)
测试用例:
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import org.junit.runners.JUnit4;
public class Tests {
@Test
public void FixedTests() {
assertEquals(18, Solution.century(1705));
assertEquals(19, Solution.century(1900));
assertEquals(17, Solution.century(1601));
assertEquals(20, Solution.century(2000));
assertEquals(1, Solution.century(89));
}
}
解题
我的:
public class Solution {
public static int century(int number) {
String str = String.valueOf(number);
if (number <= 100) { // 小于100的直接返回1世纪
return 1;
}
// 判断后两位是否为00,是则返回前两位,否则返回(前两位+1)
if ("00".equals(str.substring(str.length()-2, str.length()))) {
return Integer.parseInt(str.substring(0, str.length()-2));
} else {
return Integer.parseInt(str.substring(0, str.length()-2)) + 1;
}
}
}
我的笨方法让我显得像傻瓜一样。
别人的:
就这么简单,一句话。
public class Solution {
public static int century(int number) {
return (number + 99) / 100;
}
}
思考
我确实很傻o(╯□╰)o。