检查数字在C ++中是否为荒诞
在这里,我们将看到一个数字是否为Bleak。如果一个数字不能表示为正数x的总和,且不能在x中设置位数,则称该数字为空白。因此,对于任何非负数x,x+set_bit_count(x)不等于n。
这个概念非常简单,如果设置的位数+数字与数字不同,则为“泄漏”,否则为“不”。
示例
#include <iostream>
using namespace std;
int set_bit_count(int x) {
unsigned int bit_count = 0;
while (x != 0) {
x &= (x - 1);
bit_count++;
}
return bit_count;
}
bool isBleakNumber(int n) {
for (int i = 1; i < n; i++)
if (i + set_bit_count(i) == n)
return false;
return true;
}
int main() {
isBleakNumber(3) ? cout << "Yes\n" : cout << "No\n";
isBleakNumber(4) ? cout << "Yes\n" : cout << "No\n";
}输出结果
No Yes
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短