题目
题意
F(x)=每位的阶乘之和,找到F(xmax</max>)=F(x)。开始没有头绪,草考了其他作者的思路。提前找到1~9对应的F(max),与输入匹配后排序即可。
代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,tmp,l=0;
int s,ans[60],t[10]={0,0,2,3,322,5,53,7,7222,7332};
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%1d",&s);
tmp=t[s];
while(tmp){
ans[l++]=tmp%10;
tmp/=10;
}
}
sort(ans,ans+l);
for(int i=l-1;i>=0;i--){
printf("%d",ans[i]);
}printf("\n");
return 0;
}