题目
思路
从荒谬度的定义入手,也就是说我们每次加l一定是加l的qkpow(10,l的数位)
之后暴力做就行了
代码
#include<iostream>
#include<climits>
using namespace std;
int t;
int l;
int r;
int t1;
int t2;
int ans;
int limit=INT_MAX;
int qkpow(int a,int b)
{
if(b==0)
return 1;
if(b==1)
return a;
int t=qkpow(a,b/2);
t*=t;
if(b%2==1)
{
t*=a;
}
return t;
}
int main()
{
cin>>t;
for(int i=1;i<=t;i++)
{
ans=0;
cin>>l>>r;
while(l<=r)
{
long long t=0;
int x=l;
int t1=0;
int t2=0;
while(x%10==0)
{
x/=10;
t1++;
}
int y=x;
while(y)
{
y/=10;
t2++;
}
if(x%10==5)
t--;
t+=2*t2;
if(limit>t)
{
limit=t;
ans=l;
}
l+=qkpow(10,t1);
}
limit=INT_MAX;
cout<<ans<<'\n';
}
return 0;
}