if(n==sum){
Что такое n
? Вы инициализируете его как 999*999
в верхней части программы, а затем уже никогда не меняете его. Возможно, вы имеете в виду i
?
if(i==sum){
Теперь программа печатает 997799
, правильный палиндром.
Обратите внимание, что нет проверки, что sum
является произведением двух трехзначных чисел. Ваш нынешний подход, начиная с большого числа и уменьшая i
на 1 каждую итерацию, на самом деле не сработает. Вам действительно нужны две переменные и два цикла для перебора двух трехзначных чисел.
Но две петли значительно затруднят поиск самого большого палиндрома. О, дорогой.
for (int a = 100; a <= 999; a++) {
for (int b = 100; b <= 999; b++) {
int n = a * b;
// n is the product of two three digit numbers.
// check: is it a palindrome?
// check: is it the *largest* palindrome?
}
}