Ural 1014 Product of Digits 解题报告

题意:

是找到一个最小的正整数Q,使Q的各位数的乘积等于N。

思路:

从9到2取余。

代码:


#include
<iostream>
#include
<algorithm>
usingnamespace std;


bool fun(int x,int*ops,int&num)
{
if(x==1) return1;
for(int i=9;i>=2;i--)
{
if(x%i==0)
{
ops[num]
=i;
num
++;
return fun(x/i,ops,num);
}
}
return0;
}


int main()
{

int n;
while(cin>>n)
{
if(n==0) cout<<10<<endl;
elseif(n<=9) cout<<n<<endl;
else
{
int ops[11];
int num=0;
if(fun(n,ops,num))
{
sort(ops,ops
+num);
for(int k=0;k<num;k++)
cout
<<ops[k];
cout
<<endl;
}

else
cout
<<-1<<endl;
}
}
return0;
}
原文地址:https://www.cnblogs.com/andyidea/p/ural1014.html