2015-01-10 2 views
-1

Так я работаю над проектом Эйлера проблемы # 4 (https://projecteuler.net/problem=4) и написал этот код:Программа EUler4 работает странно?

public class Main { 

    public static void main (String[] args) { 
     for (int i = 100000; i<999*999; i++) { 
      String st=i+""; 
      char char1 = st.charAt(0); 
      char char2 = st.charAt(1); 
      char char3 = st.charAt(2); 
      char char4 = st.charAt(3); 
      char char5 = st.charAt(4); 
      char char6 = st.charAt(5); 

      if (char1 == char5 && char2 == char5 && char3 == char4) { 
       System.out.println(i); 
      } 
     } 
    } 
} 

Но всякий раз, когда я запускаю его первый номер 110010, который не является числом палиндром, а затем его распечатывает это число +1 до 997799, что любопытно 1 номер вдали от того места, где он должен появиться, потому что 999 * 999 = 998001. Поэтому мой вопрос в том, почему этот код начинается с 110010, подсчитывает от 1 оттуда и печатает это, а затем почему это заканчивается на 997799? Я просто не понимаю, как вы это распечатали из моего кода.

Спасибо.

ответ

4

Существует опечатка в if заявлении:

if (char1 == char6 && ... 
Смежные вопросы