这里写目录标题
题目
回文数即从正反两边读都是一样的数,两个二位数的乘积中最大的回文数为 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();,