2016-10-22 52 views
0

我正試圖找到0 &給定輸入之間的迴文數字。代碼中有一些錯誤。我認爲問題在於邏輯。查找回文數字

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以分號結尾的語句被認爲是空語句。因此,如果從條件結束時刪除;,則應該很好地使迴文計數在0和n之間。另請注意,Java中的整數最大範圍爲2,147,483,647,這意味着如果輸入值爲n,則會溢出,因此您應該選擇長度爲j的類型。

if(number(j)); 
      ^
+0

非常感謝,它真的幫助我。 – wicky

+0

@wicky如果你覺得這有幫助,那麼點擊下面的勾號即可,所以它將在未來幫助其他人。 – SMA

+0

現在好長,但是會溢出任何大於9.223372e + 18的數字。如果你真的想瘋狂的大數字,你應該使用BigInteger類。 –