Submit Page TestData Time Limit: 1 Sec Memory Limit: 128 Mb
Description
给你一个数N,请你找出最大的的整数k,满足 2^k ≤ N
Input
1 ≤ N ≤ 10^18
Output
输出k并换行
Sample Input
6
Sample Output
2
代码实现
#include <stdio.h>
#include <math.h>
/*
int类型取值范围为-2^31~2^31-1,十进制数量级为10^9
long long类型取值范围为-2^63~2^63-1,十进制数量级为10^18
题目要求数据数量级在10的18次方以内,所以注意数据类型为long long即可
*/
int main()
{
long n;
scanf("%lld", &n);
long item = 0;
for (int i = 0; i < n; i++)
{
if (pow(2, i) > n)
{
item = i - 1;
break;
}
}
printf("%lld\n", item);
return 0;
}