2357
题意
找一个长度为的最小整数,其可以被
整。
题解
也就是说要找一个长度为的整数能被
整除。可以转化为
的问题,那我们可以看
的结果是多少,令
,我们在
加上
,就是
位长度下最小能被
整除的整数了,这样做复杂度为
,还有可以发现,
是存在循环节的,也就是说
也存在循环节。我们通过打表发现
的顺序为
。所以我们就可以直接输出了。
复杂度
时间复杂度
代码
#include<bits/stdc++.h>
using namespace std;
char str[7][3]= {"05", "08", "17", "02", "20", "11"};
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d", &n);
if (n <= 3)
{
printf("%d\n", n == 3 ? 210 : -1);
continue;
}
int tmp = (n - 4) % 6;
printf("1");
for (int i = 0; i < n - 4; ++ i)
printf("0");
printf("%s0\n", str[tmp]);
}
return 0;
}
美团公司福利 3020人发布