Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,846 questions

51,767 answers

573 users

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

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. 
*/

fn main() {
  println!("{}", next_sparse(72));
  println!("{}", next_sparse(5));
  println!("{}", next_sparse(36));
  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  {
        n += 1;
        if is_sparse(n) == true {
            return n;
        }
    }
}







/*
run:
  
73
8
37
320
  
*/

 



answered Oct 13, 2021 by avibootz
...