题目4:找出由两个三位数乘积构成的回文。

来源:互联网 发布:淘宝双十一历年销售额 编辑:程序博客网 时间:2024/04/29 18:28

一个回文数指的是从左向右和从右向左读都一样的数字。最大的由两个两位数乘积构成的回文数是9009 = 91 * 99.

找出最大的有由个三位数乘积构成的回文数。

 

原题目链接:Problem 4


还是不能暴力算,因为是求最大的回文数,所以从最大的开始减


public class Problem4 {    public static void main(String[] args) {        int res = countPalindromic();        System.out.println(res);    }    public static int countPalindromic() {        int min = 100001;        int max = 999999;        int res = 0;        int value = 0;        for (int a = 999; a > 100; a--) {            for (int b = max / a; b > 100; b--) {                if(b > 999)                    continue;                value = a * b;                if (value > max || value < min)                    break;                if (isPalindromic(value) && value > res) {                    res = value;                    System.out.println("value:" + value + ",a:" + a + ",b:" + b);                }            }        }        return res;    }    public static Boolean isPalindromic(int value) {        String a = String.valueOf(value);        String b = new StringBuffer(a).reverse().toString();        return a.equals(b);    }}

0 0