題目連結:AtCoder Beginner Contest 215: B – log2(N)
題目敘述 :
輸入正整數 N, 輸出最大整數 k 使 2^k≤N.
範例輸入 1 :
1000000000000000000
範例輸出 1 :
59
範例輸入 2 :
6
範例輸出 2 :
2
題解 :
用迴圈循環計算。 在整數運算時 ans<<=1
相當於 ans*=2
。
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0);cin.tie(0);
long long n;
cin>>n;
int ct=0;
long long ans=1;
while(ans*2<=n){
ans<<=1;
ct++;
}
cout<<ct;
}
注意!
用內建函式log2(n)
式不會過的喔!