T2.最大回文数乘积(11.16进一步更新)

这里写目录标题

题目

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

解析

首先回文数即从正反两边读都是一样的数,可想到字符串中的反转函数
String是不可变字符串
StringBuffer和StringBuilder是可变字符串
reverse():字符串内容反转
其次三位数,可知范围为[100,999]

代码

package edu.wust.competiton;

import java.util.Scanner;

public class chapter7 {
    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;
                String s=Integer.toString(temp);
                //或者String s = String.valueOf(temp);
//                记录两个三位数的乘积
                String t=new StringBuilder(s).reverse().toString();
//                记录两个三位数的乘积的逆序
//                注意字符串的比较是equals()
                if(s.equals(t)){
                    if(max<temp){
                        max=temp;
                    }
                }
            }
        }
        System.out.println(max);
//        输出结果:906609
    }
}

注意(String是不可变字符串)

String不是基本类型,而是一个定义好的类,是一个引用类型(区分引用和地址)

String str = "This is String”; //用字符串直接量赋值
String str = new String("Create a String through the Constructor"); //String的构造器来创建字符串

这里表示引用变量str,引用一个内容为This is String 的字符串对象
字符串对象都是不可变对象,所以对字符串进行操作时,都是返回新的字符串对象,原有字符串不会改变。
String s = "ABCDEF"; String lowerCase = s.toLowerCase();,

上一篇:表结构查询(为了做数据库设计文档的查询sql)


下一篇:sql 将查询结果插入已存在表