476. 數字的補數
阿新 • • 發佈:2021-12-20
對整數的二進位制表示取反(0 變 1 ,1 變 0)後,再轉換為十進位制表示,可以得到這個整數的補數。
例如,整數 5 的二進位制表示是 "101" ,取反後得到 "010" ,再轉回十進位制表示得到補數 2 。
給你一個整數 num ,輸出它的補數。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/number-complement
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
心之所向,素履以往 生如逆旅,一葦以航import java.util.Scanner; class Solution { public int findComplement(int num) { int left = 0; int ret = 0; while (num != 0) { ret |= (1 ^ (num & 1)) << left; left++; num >>= 1; } return ret; } public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { System.out.println(new Solution().findComplement(in.nextInt())); } } }