Leetcode 476. 数字の補数C++

1809 ワード

Leetcode 476. 数字の補数
タイトル
正の整数を指定し、その補数を出力します.補数はその数のバイナリ表現に対して逆をとる.
テストサンプル
例1:
  : 5
  : 2
  : 5         101(      ),     010。        2 。

例2:
  : 1
  : 0
  : 1         1(      ),     0。        0 。

注意:
  • によって与えられた整数は、32ビット符号付き整数の範囲内で保証される.
  • バイナリ数にプリアンブルゼロビットが含まれていないと仮定できます.
  • 本題と1009https://leetcode-cn.com/problems/complement-of-base-10-integer/同じ
  • 問題解
    数値numのバイナリ数がnビットであると仮定すると,nビットの1(各ビットは1)を構築し,numとそれを異ならせて答えを得た.
    コード#コード#
     	int findComplement(int num) {
         
            int i=1;
            while(num > i){
         
                i = i<<1 | 1;
            }
            return num^i;
        }
    

    ソース:力ボタン(LeetCode)リンク:https://leetcode-cn.com/problems/number-complement著作権はインターネットの所有に帰属する.商業転載は公式の授権に連絡してください.非商業転載は出典を明記してください.