Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.76 KB | None | 0 0
  1. unsigned int nextGreaterSameCOunt(unsigned int num)
  2. {
  3.     int countOneInTheRightSide = 0;
  4.    
  5.     for (int i = 0; i< 32; i++){
  6.         if (i+1 < 32 && !(num&(i+1)) && (num&i)){ // (i+1)th bit 0 and ith bit 1 check korlam
  7.             num = num | (1<<(i+1)); // (i+1)th bit set korlam , 1 banaisi
  8.             num = num & ~(1<<i); // ith bit clear korlam, 0 banaisi
  9.             break; // first pair pawar por i break kore dichi
  10.         }
  11.         if (num & (1<<i)){
  12.             countOneInTheRightSide++; // first pair na pawa porjnto age joto 1 count kore gesi parallely
  13.         }
  14.     }
  15.    
  16.     for (int i = 0; i< countOneInTheRightSide; i++){
  17.         num |= (1<<i);  // last e dan theke abar set kortesi bit joto gula paisilam
  18.     }
  19.    
  20.     return num
  21. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement