枚举法入门

作者: xiaoshua | 来源:发表于2016-04-02 16:45 被阅读119次

算法简介

这是一种入门级的算法,它是利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检验,从中找出符合要求的答案,因此枚举法是通过牺牲时间来换取答案的全面性。

题目链接

ZOJ-1078 Palindrom Numbers

题意

给出一个(0, 50000)内的整数,求该数在[2,16]进制下分别是否为回文数

解法

枚举[2,16]进制,每次都把数字转化成该进制下的字符串,然后判断是否为回文数,最后按格式输出结果

核心代码

int n = in.nextInt();
List<Integer> fixedBaseList = new ArrayList<>();
for (int radix = 2; radix <= 16; ++radix) {
    String str = Integer.toString(n, radix);
    String revStr = new StringBuilder(str).reverse().toString();
    if (str.equals(revStr)) {
        fixedBaseList.add(radix);
    }
}

完整代码

相关文章

网友评论

    本文标题:枚举法入门

    本文链接:https://www.haomeiwen.com/subject/uooylttx.html