UVa1583-Digit Generator
思路:
打表法,因为每次重新算很费时间,所以预处理一下,从1开始算把算出来的n放到以n为下标的数组中,这样计算的复杂度就是线性的。
代码:
#include <bits/stdc++.h>
#define MAX 100005
using namespace std;
int a[MAX];
int suan(int n)
{
int ans=n;
while(ans)
{
n+=ans%10;
ans/=10;
}
return n;
}
int main()
{
int n,ans;
cin>>n;
for(int i=0;i<MAX;i++)
{
if(!a[suan(i)])a[suan(i)]=i;
}
while(n--)
{
cin>>ans;
cout<<a[ans]<<endl;
}
return 0;
}