题目来源:码蹄集
https://matiji.net/exam/brushquestion/355/778/B3FCFEC101BD05189BB74D522E019504
时间限制:1000ms
内存限制:65535kb
题目描述:输入正整数N,编写函数判断它的二进制形式是不是一个稀疏二进制,是就输出,如果不是就查找其下一个数,直到找到稀疏二进制数并输出。稀疏二进制数是二进制表示形式不包含任何连续1的数。
输入格式:输入正整数N
输出格式:输出整型
输入样例:3
输出样例:4
参考程序:
#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <cmath>
using namespace std;
#define ll long long
int nextSparse(int n) {
while(1){
if(n & (n<<1)) {
n++;
}
else return n;
}
}
int main(){
int n;
cin >> n;
cout <<nextSparse(n);
return 0;
}