뒤에 0부터 9까지 숫자를 붙이면서 모든 경우를 확인해 준다.
#include <iostream>
#include <queue>
using namespace std;
string N;
queue<string> q;
int main()
{
ios::sync_with_stdio(0), cin.tie(0);
cin >> N;
q.push(N);
while (!q.empty())
{
string cur = q.front();
q.pop();
bool isFind = true;
for (int i = N.size(); i > 0; --i)
{
int j = (N[i - 1] - '0');
if (j && (stoll(cur) % j))
{
isFind = false;
}
}
if (isFind)
{
cout << cur;
break;
}
for (char i = '0'; i <= '9'; ++i)
{
q.push(cur + i);
}
}
return 0;
}
모든 자릿수로 나누어떨어지는지 확인할 때 가장 처음 입력받은 N에 해당하는 자릿수만 확인해 주면 된다.