Guest User

Untitled

a guest
May 26th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.48 KB | None | 0 0
  1. int
  2. ilog ( int b , int n )
  3. {
  4. int lo=0 , b_lo=1 , hi=1 , mid , b_mid ;
  5.  
  6. long long b_hi=b ;
  7.  
  8. while ( b_hi < n )
  9. { lo = hi ; b_lo = b_hi ; hi = hi*2 ; b_hi = b_hi * b_hi ; }
  10.  
  11. while( hi-lo > 1 )
  12. {
  13. mid = (lo + hi) / 2 ;
  14.  
  15. b_mid = b_lo * (int) pow( b , mid - lo ) ;
  16.  
  17. if ( n < b_mid ) { hi = mid ; b_hi = b_mid ; }
  18. if ( n > b_mid ) { lo = mid ; b_lo = b_mid ; }
  19. if ( n == b_mid ) return mid ;
  20. }
  21.  
  22. return b_hi == n ? hi : lo ;
  23. }
Add Comment
Please, Sign In to add comment