/*
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 {
def is_sparse(n: Int): Boolean = {
var result = n & (n >> 1);
if (result == 0)
return true;
return false;
}
def next_sparse(number: Int): Int = {
var n: Int = number;
while (true) {
if (is_sparse(n)) {
return n;
}
n += 1;
}
return 0;
}
}
object Main {
def main(args: Array[String]): Unit = {
var obj: Number = new Number();
println(obj.next_sparse(6));
println(obj.next_sparse(5));
println(obj.next_sparse(38));
println(obj.next_sparse(305));
}
}
/*
run:
8
5
40
320
*/