Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
为什么在zju交不了?#include<stdio.h> #include<math.h> int l,i,j,k,t,a,b,s[120],r[120],w[120],x[120]; int main() { while(scanf("%d%d%d",&t,&a,&b)!=EOF) { if(b==0||t==1) { printf("(%d^%d-1)/(%d^%d-1) is not an integer with less than 100 digits.\n",t,a,t,b); continue; } if(a==0) { printf("(%d^%d-1)/(%d^%d-1) 0\n",t,a,t,b); continue; } if(a==b) { printf("(%d^%d-1)/(%d^%d-1) 1\n",t,a,t,b); continue; } if(a%b!=0||(a-b)*log10(t)>=120) { printf("(%d^%d-1)/(%d^%d-1) is not an integer with less than 100 digits.\n",t,a,t,b); continue; } k=a/b; for(i=0;i<120;i++) w[i]=s[i]=r[i]=0; s[0]=1; for(i=0;i<b;i++) { for(l=j=0;j<120;j++) { s[j]=s[j]*t+l; if(s[j]>9) { l=s[j]/10; s[j]%=10; } else l=0; } } for(i=0;i<120;i++) r[i]=s[i]; w[0]=1; for(l=1;l<k;l++) { for(j=i=0;i<120;i++) { w[i]+=s[i]+j; if(w[i]>9) { j=1; w[i]-=10; } else j=0; x[i]=0; } for(i=0;i<120;i++) for(j=0;j<120;j++) if(i+j<120) { x[i+j]+=s[i]*r[j]; if(x[i+j]>9) { x[i+j+1]+=x[i+j]/10; x[i+j]%=10; } } for(i=0;i<120;i++) s[i]=x[i]; } i=119; while(w[i]==0) i--; if(i>99) { printf("(%d^%d-1)/(%d^%d-1) is not an integer with less than 100 digits.\n",t,a,t,b); continue; } printf("(%d^%d-1)/(%d^%d-1) ",t,a,t,b); for(;i>=0;i--) printf("%d",w[i]); printf("\n"); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator