您的位置:首页 > 其它

URAL 1014 Product of Digits

2013-11-22 13:02 363 查看
给定一个整数N,找出最小的正整数Q,使得Q的各位数的积等于N。

直接深搜

#include <iostream>
using namespace std;
#include <vector>
#include <algorithm>
int flag;
vector<int> result;
void dfs(int num) {
if (flag==1)
return;
if (num < 10) {
result.push_back(num);
flag=1;
return;
}
int i;
for (i=9;i>=2;i--) {
if (num % i==0) {
result.push_back(i);
dfs(num/i);
if (flag==1)
return;
result.pop_back();
}
}
}
int main() {
int n;

while (cin >> n) {
if (n==0)
cout << "10" << endl;
else {
flag = 0;
result.clear();
dfs(n);
sort(result.begin(), result.end());
if (flag==1) {
for (int i = 0; i < result.size(); i++)
cout << result[i];
}
else
cout << "-1";
cout << endl;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: