题目描述
有 0-9 ,一共 10 张卡片,你需要选择其中的一些拼接成一个正整数(不含前导零)使得这个数是能被 k 整除的最小的正整数。
如果不存在,请输出-1。
输入
输入一个正整数 k 。
(2 ≤ k ≤ 1010 -1 )
输出
对于每组数据,输出一个正整数。
样例输入Copy
22
样例输出Copy
132
#include <iostream>
int main()
{
int k, x, y, n, found;
std::cin >> k;
x = k;
while (1)
{
found = 1;
int f[10] = {};
y = x;
n = 0;
while (y)
{
int r = y % 10;
if (f[r])
{
found = 0;
break;
}
else
{
f[r] = 1;
}
y /= 10;
n++;
}
if (found || n > 10)
break;
x += k;
}
if (found)
std::cout << x;
else
std::cout << -1;
return 0;
}