求助,开long long了为什么只有60分
查看原帖
求助,开long long了为什么只有60分
965230
wllg1212楼主2024/8/8 16:31
#include <bits/stdc++.h>
using namespace std;
long long a[12345678];
long long three(int n)
{
	long long num=0;
	for(int i=0;i<n;i++)
	{
		for(int j=i+1;j<=n;j++)
		{
			num++;
			a[num]=pow(2,i)+pow(2,j);
			//cout<<a[num]<<endl;
		}
	}
	for(int i=0;i<=n;i++)
	{
		num++;
		a[num]=pow(2,i);
	}
	return num;
}
int main()
{
	long long num=three(63);
	sort(a+1,a+num+1);
	//for(int i=1;i<=num;i++)
	//	cout<<i<<' '<<a[i]<<endl;
	int t;
	cin>>t;
	for(int i=1;i<=t;i++)
	{
		long long q,bnum=0;
		cin>>q;
		long long h=q;
		while(q!=0)
		{
			if(q%2!=0) bnum++;
			q/=2;
		}
		if(bnum>=3) cout<<"No,Commander"<<endl;
		else
		{
			for(int j=1;j<=2100;j++)
			{
				if(a[j]>h) 
				{
					cout<<a[j]<<endl;
					break;
				}
			}
		}
	}
}
2024/8/8 16:31
加载中...