Java程式檢查二進位制表示是否為迴文


迴文是指正讀反讀都一樣的序列。檢查數字的二進位制表示是否為迴文,但不考慮前導0。如下例所示:

Number = 5
Binary representation = 101

數字5的二進位制表示是迴文,因為它正讀反讀都一樣。

演示此功能的程式如下所示。

示例

即時演示

public class Example {
   public static void main(String argc[]) {
      long num = 5, n1;
      long reverse = 0;
      n1 = num;
      while (n1 > 0) {
         reverse <<= 1;
         if ((n1 & 1) == 1)
            reverse ^= 1;
         n1 >>= 1;
      }
      if(num == reverse) {
         System.out.println("Binary representation of " + num + " is palindrome");
      }else {
         System.out.println("Binary representation of " + num + " is not palindrome");
      }
   }
}

輸出

Binary representation of 5 is palindrome

現在讓我們瞭解以上程式。

使用while迴圈獲得給定數字5的反轉。演示此功能的程式碼片段如下所示:

long num = 5, n1;
long reverse = 0;
n1 = num;
while (n1 > 0) {
   reverse <<= 1;
   if ((n1 & 1) == 1)
      reverse ^= 1;
      n1 >>= 1;
}

如果數字與其反轉相同,則它是迴文並打印出來,否則它不是迴文並打印出來。演示此功能的程式碼片段如下所示:

if(num == reverse) {
   System.out.println("Binary representation of " + num + " is palindrome");
}else {
   System.out.println("Binary representation of " + num + " is not palindrome");
}

更新時間: 2019年7月30日

4K+ 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告