public class Script_4
{
/*
A palindromic number reads the same both ways.
The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
Find the largest palindrome made from the product of two 3-digit numbers.
*/
public static void main (String [] Args)
{
int highest_palindrome = 0;
int product;
int length;
String product_string;
for (int num = 100; num < 1000; num ++)
{
for ( int inside_num = 100; inside_num < 1000; inside_num ++) {
product = num * inside_num;
product_string = Integer.toString(product);
length = product_string.length();
if (length == 5) {
int[] numbers_array = new int[5];
for (int i = 0; i < 5; i++) {
numbers_array[i] = Integer.parseInt(product_string.substring(i, i + 1));
}
if (numbers_array[0] == numbers_array[4]) {
if (numbers_array[1] == numbers_array[3]) {
highest_palindrome = product;
}
}
} else if (length == 6) {
int[] numbers_array = new int[6];
for (int i = 0; i < 5; i++) {
numbers_array[i] = Integer.parseInt((product_string.substring(i, i + 1)));
}
if (numbers_array[0] == numbers_array[5]) {
if (numbers_array[1] == numbers_array[4]) {
if (numbers_array[2] == numbers_array[3]) {
highest_palindrome = product;
}
}
}
}
}
}
System.out.println(highest_palindrome);
}
}
Ожидается, что моя программа выдаст наивысшее палиндромное произведение из двух трехзначных чисел. Когда я запускаю эту программу, мой вывод «99299», тогда как он должен быть намного выше. Кто-нибудь знает, почему это происходит? Большое спасибо за любую помощь, любой ценится. Я только начал изучать Java на прошлой неделе, и это мой способ реализации этих знаний. Спасибо!