你算一下,计算机一秒最多计算$10^9$次,你这程序跑满要$n*a*log10(a)$次,也就是$10000*4*10^9*9$,远超了吧
by Nopain @ 2021-06-06 08:35:05
@[落日斜阳](/user/376149) 道理是这个道理,但是它要怎么减少运算次数啊
by 小智张 @ 2021-06-06 09:03:15
提供一种方法
```
#include<bits/stdc++.h>
using namespace std;
int T;
char n[20];
long long ans;
void solve()
{
ans=0;
long long p=1ll;
int len=strlen(n);
for(int i=len-1;i>=0;--i)
{
long long x=n[i]-'0';
if(x>=7)--x;
ans+=x*p;
p=p*9ll;
}
}
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%s",n);
solve();
printf("%lld\n",ans);
}
}
```
by zhangruozhong @ 2021-06-06 09:05:48
@[zhangruozhong](/user/492104) 实在感谢!!
by 小智张 @ 2021-06-06 09:08:55