1009. Complement of Base 10 Integer
Дополнение целого числа - это целое число, которое получается, если перевернуть все 0 в 1 и все 1 в 0 в его двоичном представлении. Например, целое число 5 - это "101" в двоичном представлении, а его дополнение - "010", то есть целое число 2. Если задано целое число n, верните его дополнение.
Пример:
Input: n = 5
Output: 2
C# решение
сопоставлено/оригиналpublic class Solution {
public int FindComplement(int num) {
int length = (int)Math.Log(num, 2) + 1;
int mask = (1 << length) - 1;
return num ^ mask;
}
}
C++ решение
auto-draft, проверить перед отправкой#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
public int FindComplement(int num) {
int length = (int)Math.Log(num, 2) + 1;
int mask = (1 << length) - 1;
return num ^ mask;
}
}
Java решение
сопоставлено/оригиналpublic class Solution {
public int findComplement(int num) {
int length = Integer.toBinaryString(num).length();
int mask = (1 << length) - 1;
return num ^ mask;
}
}
Go решение
сопоставлено/оригиналfunc findComplement(num int) int {
length := 0
for i := num; i > 0; i >>= 1 {
length++
}
mask := (1 << length) - 1
return num ^ mask
}
Algorithm
Определение длины двоичного представления:
Найдите длину двоичного представления числа n.
Создание маски:
Создайте маску, которая состоит из всех единиц и имеет ту же длину, что и двоичное представление числа n.
Вычисление дополнения:
Примените побитовую операцию XOR между числом n и маской, чтобы получить дополнение числа.
😎
Вакансии для этой задачи
Показаны активные вакансии с пересечением по тегам задачи.
Активных вакансий пока нет.