2016-10-22 3 views
0

Palindrome 번호를사이에서 찾으려고합니다. 코드에 오류가 있습니다. 문제는 논리라고 생각합니다.Palindrome 번호 찾기

import java.util.Scanner; 

public class Palindrome { 

    public static void main(String[] args) { 
     int count = 0; 
     System.out.println("Enter the limit to check the no of Palindrome "); 
     Scanner input = new Scanner(System.in); 
     int no = input.nextInt(); 

     for (int j = 0; j <= no; j++) { 
      if (number(j)) ; 
      ++count; 
     } 
     System.out.println(count); 
    } 

    public static boolean number(int num) { 


     int i = num; 
     int reverse = 0; 
     while (i != 0) { 
      reverse = reverse * 10; 
      reverse = reverse + i % 10; 
      i = i/10; 
     } 


     if (num == reverse) { 
      return true; 
     } else 
      return false; 

    } 
} 
+0

오류를 나열하십시오. –

답변

2

if 끝의 세미콜론은 null 문으로 간주됩니다. 따라서 if 조건의 끝에서 ;을 제거하면 0과 n 사이의 palindrome 카운트를 얻는 것이 좋습니다. 또한 Java의 정수 최대 범위는 2,147,483,647이므로이 값을 n 값으로 입력하면 오버플로되므로 j 유형을 길게 선택해야합니다.

if(number(j)); 
      ^
+0

고맙습니다. 정말 도움이됩니다. – wicky

+0

이것이 도움이되었다고 생각되면 @wicky를 입력하고 투표 수 아래의 틱을 클릭하면 나중에 다른 사람들에게 도움이 될 것입니다. – SMA

+0

이제 오랫동안 괜찮 았지만, 9.223372e + 18보다 큰 숫자가 오버 플로우되었습니다. 미친 큰 숫자를 정말로 원하면 BigInteger 클래스를 사용해야합니다. –