每日一练35——Java由年求世纪(8kyu)

题目

介绍:

第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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容