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 }