枚举法入门

算法简介

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

题目链接

ZOJ-1078 Palindrom Numbers

题意

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

解法

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

核心代码

int n = in.nextInt();
List 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);
    }
}

完整代码

你可能感兴趣的:(枚举法入门)