AtCoder Beginner Contest 215 B - log2(N)
問題の要約
正整数Nが与えられるので,2^k<=Nとなる最大の整数kを求めよ。
制約
1<=N<=10^18
入力
N
考え方
1,入力例3からN=10^18のkは59なのでfor文で間に合う。
for文はiを0から60まで回す。
2^i<=Nの条件が満たされなくなったとき,k=i-1としてkを出力。
実際のプログラム
#include<iostream>
#include<cmath>
using namespace std;
int main(){
long long N;
cin >> N;
long long k;
for(int i = 0; i <= 60; i++){
if(!*1{
k = i-1;
break;
}
}
cout << k << endl;
return 0;
}
*1:long long)pow(2.,i) <= N