Mercurial > Algorithms__Sedgewick
annotate algs4-c++/1.1.14/lg.cpp @ 14:2f87e582d91a
ResizingArrayDeque (exercise 1.3.33)
author | Eris Caffee <discordia@eldalin.com> |
---|---|
date | Wed, 10 Jun 2015 18:12:59 -0500 |
parents | |
children |
rev | line source |
---|---|
discordia@0 | 1 // Write a static method lg() that takes an int value N as argument and returns the largest int not larger than the base-2 logarithm of N. Do not use Math. |
discordia@0 | 2 |
discordia@0 | 3 // g++ lg.cpp -o lg |
discordia@0 | 4 |
discordia@0 | 5 #include <cmath> |
discordia@0 | 6 #include <climits> |
discordia@0 | 7 #include <iostream> |
discordia@0 | 8 |
discordia@0 | 9 int main( int argc, char **argv ) { |
discordia@0 | 10 |
discordia@0 | 11 while ( ! std::cin.eof() ) { |
discordia@0 | 12 int i; |
discordia@0 | 13 std::cin >> i; |
discordia@0 | 14 int lg = 0; |
discordia@0 | 15 while ( (1 << lg) <= i ) { |
discordia@0 | 16 lg++; |
discordia@0 | 17 } |
discordia@0 | 18 lg--; |
discordia@0 | 19 std::cout << "lg(" << i << ") >= " << lg << " actual value is " << log2(i) << std::endl; |
discordia@0 | 20 } |
discordia@0 | 21 } |