How to find the next sparse number which greater than a given number in Swift

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. 
*/
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) {
          n += 1;
          if (self.is_sparse(n)) {
            return n;
          }
        }
    }
}
func main() {
    let obj: Number = Number();
   
    print(obj.next_sparse(72));
    print(obj.next_sparse(5));
    print(obj.next_sparse(36));
    print(obj.next_sparse(305));
 
}
 
main();
 
 

 
/*
run:
    
73
8
37
320
    
*/

 



answered Oct 12, 2021 by avibootz
...