生成元问题
一次性枚举100000内的所有正整数m,标记“m加上m的各个数字之和得到的数有一个生成元是m”,最后查表即可
t个测试用例
#include <iostream>
#include <cstring>
#define maxn 100005
using namespace std;
int ans[maxn];
int main()
{
int t,n;
for(int m=1;m<maxn;m++) {
int x=m,y=m;
while(x>0) {y+=x%10,x/=10;}
if(ans[y]==0||m<ans[y]){ans[y]=m;}//重点
}
cin>>t;
while(t--){
cin>>n;
cout<<ans[n];
}
return 0;
}