求助
查看原帖
求助
242524
JRzyh楼主2020/7/8 21:28

第四点错了

#include<bits/stdc++.h>
using namespace std;
long long call(long long idx)
{
	long long l=0,r=1125899906842623,val=0;
	while(l<r)
	{
		long long si=(r-l+1)/4;
		long long b1=l,b2=l+si,b3=l+si*2,b4=l+si*3;
		long long e1=l+si-1,e2=l+si*2-1,e3=l+si*3-1,e4=r;
		if(idx<=e1&&idx>=b1)
		{
			l=b1;
			r=e1;
			val+=0;
			continue;
		}
		if(idx<=e2&&idx>=b2)
		{
			l=b2;
			r=e2;
			val+=1;
			continue;
		}
		if(idx<=e3&&idx>=b3)
		{
			l=b3;
			r=e3;
			val+=3;
			continue;
		}
		if(idx<=e4&&idx>=b4)
		{
			l=b4;
			r=e4;
			val+=4;
			continue;
		}
	}
	return val;
} 
int n;
int main()
{
	cin>>n;
	while(n--)
	{
		long long idx;
		cin>>idx;
		cout<<call(idx)<<endl;
	}
	
	return 0;
}
2020/7/8 21:28
加载中...