题目
最大回文数乘积
回文数即从正反两边读都是一样的数,两个二位数的乘积中最大的回文数为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
}
}
}