2 最大回文乘积
回文数就是从前往后和从后往前读都一样的数。
由两个2位数相乘得到的最大回文乘积是 9009 = 91 × 99。
找出由两个3位数相乘得到的最大回文乘积。
public class huiwen {
public static int bigpalindrome() {
int num = 0;
for(int i=999;i>0;i--) {
for(int j=999;j>0;j--) {
int product = i*j; //乘积
if(product>num && palindrome(product)) //乘积大于0且是回文
num = product;
}
}
return num;
}
//判断是否是回文
private static boolean palindrome(int num) {
int bitCount = 0; //数组下标,记录 num 的位数
int bit[] = new int[10]; //数组bit,记录每个位上的数字
//依次求每个位上的数字
while(num !=0) {
bit[bitCount++] = num %10;
num = num/10;
}
//从两端位置开始,比较是否是回文
for(int i=0;i<(bitCount/2);i++) { //(bitCount=6)
// 或( ;i<bitCount>>1; )
if(bit[i] != bit[bitCount-i-1])
return false;
}
return true;
}
public static void main(String[] args) {
int res = bigpalindrome();
System.out.println(res);
}
}