记录编号 401841 评测结果 AAAAAAAAAA
题目名称 讨厌整除的小明 最终得分 100
用户昵称 GravatarRegnig Etalsnart 是否通过 通过
代码语言 C++ 运行时间 0.069 s
提交时间 2017-05-04 09:29:57 内存使用 0.31 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int q,i;
long long n,num=1,a[64];
int lct(int l,int r)
{
	if(r-l==1)return r;
	int mid=(l+r)/2;
	if(n<a[mid])return lct(l,mid);
	if(n==a[mid])return log(n)/log(2)+1;
	if(n>a[mid])return lct(mid,r);
}
int main()
{
	freopen("ming.in","r",stdin);freopen("ming.out","w",stdout);
	a[0]=1;
	for(i=1;i<=63;i++)
	{
		num*=2;
		a[i]=num;
	}
	scanf("%d",&q);
	for(i=1;i<=q;i++)
	{
		scanf("%lld",&n);
		if(n==1){printf("1\n");continue;}
		printf("%lld\n",lct(1,60));
	}
	return 0;
}