解题思路
本题的目标是对给定的 x,构造一个大于 x 且不超过 2×1010 的整数 y,使得乘积 x×y 的十进制表示中包含 0∼9 至少一次(成为全数字数)。
我们可以采用一种简单且高效的构造方法:
- 显然,如果一个数包含 0∼9 所有数字,那么在其末尾拼接任意一个由 0∼9 组成的数字串后,得到的数仍然包含所有数字。利用这一性质,我们可以构造一个特殊的被乘数 S,它将以 “1234567890” 开头,后面再拼接上 x 本身。
- 具体地,令字符串 S=
"1234567890" + 十进制表示的 x。这样 S 的前 10 位已经覆盖了 1 到 9 以及 0,无论后面拼接什么数,S 一定是一个全数字数。
- 令 S 对应的整数值为 N。令 y=N/x,即 N÷x 的整数商。因为 N 能整除 x 吗?不一定。我们实际构造的是 N=⌊N/x⌋×x+r,直接取整除结果 y=⌊N/x⌋,那么 x×y 很可能不等于 N,不保证是全数字数。