CF1326A - Bad Ugly Numbers 题解
因为 \(1\le n\le 100000\),所以直接用变量来存储 \(s\) 显然是不可行的。
我们来从数学方面来考虑一下这个问题。既然构造的数 \(s\):
-
大于 \(0\)
-
有 \(n\) 位
-
任何一个数位上的数都不能为 \(0\)
-
不能被任何一个数位上的数整除
所以我们很快能想到一种滑稽的构造方式:当 \(n=1\) 时,无法构造出 \(s\),输出-1
;否则,\(s\) 的最高位为 \(2\),其余数位皆为 \(3\)。显然,这样构造出来的 \(s\) 是正确的。
Code:
int main() {
int t;cin>>t;
while (t--) {
int n;cin>>n;
if (n==1) {cout<<"-1\n";continue;}
cout<<2;
for (int i=1;i<n;i++) cout<<3;
putchar('\n');
}
return 0;
}
转载是允许的,但是除了博主同意的情况下,必须在文章的明显区域说明出处,否则将会追究其法律责任。