/*
If there are no two consecutive 1s in a number binary representation,
it is Sparse. 5 (101) is sparse, 6 (110) is not.
*/
class Number {
func is_sparse(_ n: Int) -> Bool {
var result : Int
result = n & (n >> 1);
if (result == 0) {
return true;
}
return false;
}
func next_sparse(_ number: Int) -> Int {
var n: Int = number;
while (true) {
if (self.is_sparse(n)) {
return n;
}
n += 1;
}
}
}
func main() {
let obj: Number = Number();
print(obj.next_sparse(6));
print(obj.next_sparse(5));
print(obj.next_sparse(38));
print(obj.next_sparse(305));
}
main();
/*
run:
8
5
40
320
*/