2014-12-15 5 views
1

저는 회문 근본 문제를 해결하려고합니다.
하지만 계속이 예외가 있습니다. - ArrayIndexOutOfBoundsException가장 큰 자리 palindrome 찾기 - ArrayIndexOutOfBoundsException?

나는 그걸 알아 내고 싶었지만 그 원인을 이해할 수는 없습니다.

public class LargestPalindrome 
{ 
    public int isPalindrome(int n) 
    { 
     int revNum=0; 
     int num=n,flag=0; 
     while(num!=0) 
     { 
      revNum=revNum*10; 
      revNum=revNum + (num%10); 
      num=num/10; 
     } 

     if(n==revNum) 
      flag=1; 
     else 
      flag=0; 
     return(flag); 
    } 

    public static void main(String args[]) 
    { 
     LargestPalindrome p=new LargestPalindrome(); 
     int flag=0,pro=0; 
     int a[]= new int[100]; 
     int b[]=new int[100]; 

     for(int i=1;i<=99;i++) 
     { 
      a[i]=i; 
      b[i]=i; 
     } 

     for(int i=1;i<=99;i++) 
     { 
      for(int j=1;j<=99;i++) 
      { 
       pro=a[i]*b[j]; 

       flag=p.isPalindrome(pro); 
       if(flag==1) 
        System.out.println(pro); 
       pro=0; 
      } 
     } 

    } 
} 

어떤 제안 : 여기

코드인가?

+1

'i'와'j'는 매우 비슷해 보입니다. 가끔은'x'와'y'를 사용합니다.) 나는 두 사람이 비슷하다는 것을 알았습니다 :/ – Maroun

+0

고마워요 Maroun Maroun 정말 기분이 아주 당황 스럽네요. 내 바보 같은 실수로. 다시 한 번 감사드립니다 :) – Spongebob

+0

@Shashank 나는 당신의 솔루션을 약간 재 작성하려고 노력했으며, 논리 계산을 단순화했습니다. 해결책은 다음과 같습니다 [LargestNumberPalindrome] (http://pastebin.com/CTzHWRdc). –

답변

6
for(int i=1;i<=99;i++) 
    { 
     for(int j=1;j<=99;i++) 

당신은 문에 대한 두 번째에 J를 증가한다.

+0

쉽게 놓칠 수 있습니다. +1 – christopher

+0

감사합니다. 부끄러움 : p – Spongebob