http://acm.timus.ru/problem.aspx?space=1&num=1014
題目雖水,但資料很陰,0竟然輸出10!!!害得我wa了幾次,還有要用long long防溢出
#include <vector>#include <list>#include <map>#include <set>#include <queue>#include <string.h>#include <deque>#include <stack>#include <bitset>#include <algorithm>#include <functional>#include <numeric>#include <utility>#include <sstream>#include <iostream>#include <iomanip>#include <cstdio>#include <cmath>#include <cstdlib>#include <limits.h>using namespace std;int lowbit(int t){return t&(-t);}int countbit(int t){return (t==0)?0:(1+countbit(t&(t-1)));}int gcd(int a,int b){return (b==0)?a:gcd(b,a%b);}int max(int a,int b){return a>b?a:b;}int min(int a,int b){return a>b?b:a;}#define LL long long#define pi acos(-1)#define N 200010#define INF INT_MAX#define eps 1e-8#define FRE freopen("a.txt","r",stdin)int main(){ LL n; while(scanf("%I64d",&n)!=EOF) { if(n<10&&n!=0) printf("%I64d\n",n); else if(!n)printf("10\n"); else { int i,j; LL ans=0; LL cnt=1; int flag=1; while(n>1) { for(i=9;i>1;i--) { if(n%i==0) { ans+=i*cnt; cnt*=10; n/=i; break; } } if(i==1&&n>1) { flag=0; break; } } if(!flag)printf("-1\n"); else printf("%I64d\n",ans); } } return 0;}