3370 - Smallest Number With All Set Bits
problem
You are given a positive number n.
Return the smallest number x greater than or equal to n, such that the binary representation of x contains only set bits
Example 1:
Input: n = 5
Output: 7
Explanation:
The binary representation of 7 is "111".
Example 2:
Input: n = 10
Output: 15
Explanation:
The binary representation of 15 is "1111".
Example 3:
Input: n = 3
Output: 3
Explanation:
The binary representation of 3 is "11".
Constraints:
1 <= n <= 1000
submission
impl Solution {
pub fn smallest_number(n: i32) -> i32 {
// | the first set bit
// 0000101..0
// -> 0000111..1
// -> 0001000..0 - 1
(1 << (32 - n.leading_zeros())) - 1
}
}