/*
If there are no two consecutive 1s in a number binary representation,
it is Sparse. 5 (101) is sparse, 6 (110) is not.
*/
fn main() {
println!("{}", next_sparse(6));
println!("{}", next_sparse(5));
println!("{}", next_sparse(38));
println!("{}", next_sparse(305));
}
fn is_sparse(n: i32) -> bool {
let result = n & (n >> 1);
if result == 0 {
return true;
}
return false;
}
fn next_sparse(number: i32) -> i32 {
let mut n: i32 = number;
loop {
if is_sparse(n) == true {
return n;
}
n += 1;
}
}
/*
run:
8
5
40
320
*/