两个三位数最大回文数乘积(Java)

本文介绍了多种判断回文数的方法,包括常规的反转比较、使用StringBuilder以及头尾指针法,并提出了寻找最大回文数乘积的思路,通过从大到小遍历并判断数是否能拆分为两个回文数的乘积。代码示例展示了具体的实现细节。
摘要由CSDN通过智能技术生成

本题重点提供判断回文数思路:

1.常规方法:把原数取余 后逐步乘10赋给另一数 比较他们是否相等

2.利用java函数库 stringbuilder

3.利用头尾指针法

关于最大回文数乘积:

本文采用思路为:1.从大到小判断是否为回文数 2.该数是否可以分为两个数的乘积

提供另外思路:直接两个for循环两个数求解

package edu.wust;
//两个三位数最大回文树乘积
public class work004 {
    /**
     *判断回文数 方法1 常规方法
     * 思路:将该数逆转 再比较两数是否相当
     */
    //是否为回文数
    public static boolean isHui(int x){
        //更简洁一些
        int tap=0;
        int t=x;
        while(t!=0){
            tap=tap*10+t%10;
            t/=10;
        }
//        int tap=n;
//        int huiN=n%10;
//        while (n/10>0){
//            n/=10;
//            huiN=huiN*10+n%10;
//        }
        return tap==x;
//        if(tap==huiN){
//            return true;
//        }
//        return false;
    }

    /**
     *判断回文数 方法2 调用java库方法
     * String是不可变的,相当于常量,而StringBuffer和StringBuilder是可变的,可以对其进行增加 删除修改等操作
     *StringBuffer是多线程安全的,效率要稍慢;单线程StringBuider
     */
    public static boolean isHuiWen2(String x) {
   return x.equals(new StringBuilder(x).reverse().toString());
    }

    /**
     *方法3 根据头尾指针
     */
    public static boolean isHuiWen3(String x){
        for(int i=0;i<x.length();i++){
            if(x.charAt(i)!=x.charAt(x.length()-1-i)){
                return false;
            }
        }
        return true;
    }


    //这个数是否可以分成2个3位数 返回分成地其中一个树
    public static int isChu(int n){
        for(var i=999;i>99;i--){
            if(n%i==0&&n/i>99&&n/i<999){
                return  i;
            }
        }
        return -1;
    }
    public static void main(String[] args) {
        for(int i=1000000;i>10000;i--){
            if(isHui(i)&&isChu(i)!=-1){
                   System.out.println(i);
                  break;
            }
        }
    }
}

注:本文为个人学习笔记 如有侵权 请联系本人整改

另:本文内容上,如有失误,欢迎指正

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值