How to find the next sparse number which greater than or equal to a given number in PHP

1 Answer

0 votes
/*
If there are no two consecutive 1s in a number binary representation, 
it is Sparse. 5 (101) is sparse, 6 (110) is not. 
*/
 
function is_sparse($n) { 
    $result = $n & ($n >> 1);
      
    if ($result == 0)
      return true;
      
    return false;
}

function next_sparse($number) {
    while (1) {
        if (is_sparse($number)) {
            return $number;
        }
        $number++;
    }
}
  
echo next_sparse(86) . "\n";
echo next_sparse(5) . "\n";
echo next_sparse(38) . "\n";
echo next_sparse(305) . "\n";
 
  
  
  
/*
run:
  
128
5
40
320
  
*/

 



answered Oct 11, 2021 by avibootz
...