二分代码没过:
#include<bits/stdc++.h>
#define ll unsigned long long
using namespace std;
ll t,n;
bool check(ll x)
{
ll s=0;
for(x;x!=0;x/=10)
s=s*10+x%10;
return n>=s;
}
void ef(ll l,ll r)
{
ll mid;
while(l<=r)
{
mid=l+(r-l+1)/2;
if(check(mid))
l=mid+1;
else
r=mid-1;
}
printf("%lld\n",r);
}
int main()
{
scanf("%lld",&t);
while(t--&&t>=0)
{
scanf("%lld",&n);
ef(1,n*n);
}
return 0;
}
求帮助