2016-10-22 16 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最後にセミコロンを付けたステートメントはヌルステートメントとみなされます。したがって、if条件の末尾から;を削除すると、0とnの間の回文カウントを得るのがよいでしょう。また、Javaの整数最大範囲は2,147,483,647であることに注意してください。つまり、nという値を入力すると、オーバーフローして、jの型を長く選択する必要があります。

if(number(j)); 
      ^
+0

本当にありがとうございます。 – wicky

+0

@ウィキあなたがこれを助けてくれたと思ったら、投票数の下のダニをクリックして、将来他の人に役立つでしょう。 – SMA

+0

今は大丈夫ですが、9.223372e + 18より大きい数値でオーバーフローします。あなたが本当に狂った大きな数字を望むなら、BigIntegerクラスを使うべきです。 –

関連する問題