T2.最大回文数(11.16)

题目

最大回文数乘积
回文数即从正反两边读都是一样的数,两个二位数的乘积中最大的回文数为9009=91*99,寻找两个三位数乘积中最大的回文数。

解析(以暴力求解为例)

第一步:记录三位数乘积(即遍历范围为[100,999])
第二步:判断是否为回文数,即数顺着读和逆着读大小是否一样
第三步:最大即可用变量max来存储(注意要初始化)

回文数的判断

//判断是否是回文数
    public  static boolean isSame(int max){
    
    
//        判断max是否为回文数
        int isMax=max;
        int result=0;
//        用result来记录逆着读的数
        int temp=0;
        while(isMax!=0){
    
    
            temp=isMax%10;
            result=result*10+temp;
//            关键
            isMax=isMax/10;
        }
        if(result==max){
    
    
            return true;
        }else{
    
    
            return false;
        }
    }

代码

package edu.wust.competiton;

public class chapter4 {
    
    
//判断是否是回文数
    public  static boolean isSame(int max){
    
    
//        判断max是否为回文数
        int isMax=max;
        int result=0;
//        用result来记录逆着读的数
        int temp=0;
        while(isMax!=0){
    
    
            temp=isMax%10;
            result=result*10+temp;
//            关键
            isMax=isMax/10;
        }
        if(result==max){
    
    
            return true;
        }else{
    
    
            return false;
        }
    }

    public static void main(String[] args) {
    
    
        int max=0;
        for(int i=100;i<=999;i++){
    
    
            for(int j=100;j<=999;j++){
    
    
                int temp=i*j;
                if(isSame(temp)){
    
    
//                    判断是否为回文数
                    if(max<temp){
    
    
                        max=temp;
                    }
                }
            }
        }
        if(max!=0){
    
    
//            表明有回文数
            System.out.println(max);
            //输出结果:906609
        }
    }


}

猜你喜欢

转载自blog.csdn.net/qq_51517771/article/details/121434245
今日推荐