标签:uva 贪心 namespace iostream printf
水题一枚,如果n能分解成2--9的因子相乘的形式的话肯定是可以的,如果不行那么就直接输出-1;
那么当能分解的时候,为了能使得答案的值最小,我们选择先分解大的因子;也就是按9--2的次序进行分解。
分解后直接按因子从小到大输出就是答案了。
代码如下:
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int main() { int i,j,k,t,ans[50]; long long n; scanf("%d",&t); while(t--) { k=0; scanf("%lld",&n); if(n==1) { printf("1\n"); continue; } for(i=9;i>=2;i--) while(n%i==0) { ans[k++]=i; n=n/i; } if(n>10) { printf("-1\n"); continue; } for(i=k-1;i>=0;i--) printf("%d",ans[i]); printf("\n"); } return 0; }
标签:uva 贪心 namespace iostream printf
原文地址:http://blog.csdn.net/acm_lkl/article/details/41458477