Posted on 2011-12-27 17:27
C小加 閱讀(1370)
評論(0) 編輯 收藏 引用 所屬分類:
解題報告
題意:
是找到一個最小的正整數Q,使Q的各位數的乘積等于N。
思路:
從9到2取余。
代碼:
#include <iostream>
#include <algorithm>
using namespace std;
bool fun(int x,int *ops,int &num)
{
if(x==1) return 1;
for(int i=9;i>=2;i--)
{
if(x%i==0)
{
ops[num]=i;
num++;
return fun(x/i,ops,num);
}
}
return 0;
}
int main()
{
int n;
while(cin>>n)
{if(n==0) cout<<10<<endl;
else if(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;
}
}
return 0;
}