#include <bits/stdc++.h>
#include <hash_map>
using namespace std;
using namespace __gnu_cxx;
#pragma GCC optimize(2)
#define maxx 150000
hash_map<int, bool> M;
int Ans[150010];
int Sans = 0;
int Res(int x)
{
int cc = 0;
while(x)
{
cc += (x%10)*(x%10);
x /= 10;
}
return cc;
}
bool jud(int x)
{
if(M.count(x) != 0)
{
return M[x];
}
M[x] = false;
int cc = Res(x);
if(jud(cc))
{
M[cc] = true;
M[x] = true;
return true;
}else
{
M[cc] = false;
return false;
}
return false;
}
int main(int argc, char *argv[])
{
freopen("G:\\data.txt", "r", stdin);
M[1] = true;
int t = 2;
while(M.size() < 1000000)
{
jud(t);
t++;
}
for(hash_map<int, bool>::iterator it = M.begin(); it != M.end();
it++)
{
if(it->second == true)
{
Ans[Sans++] = it->first;
}
}
sort(Ans, Ans+Sans);
int Q;
cin >> Q;
while(Q--)
{
int cc;
cin >> cc;
cout << Ans[cc-1] << endl;
}
// cout << Sans << endl;
return 0;
}
/*
*/
HDOJ 6463 超级无敌简单题
最新推荐文章于 2022-08-26 10:37:59 发布