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 |
高手看看我这个程序错在哪里呀?测试数据和一些BT数据都通过了,就是不能AC#include <stdio.h> #include <stdlib.h> #include<ctype.h> #include<math.h> #include<string.h> void compute(char *result,long m); void print(char *result,int x,int n,int y); int main(int argc, char *argv[]) { float m; int n,x,i,k; char mm[7],result[125]; while(scanf("%s%d",mm,&n)!=EOF) { if(n==0) { printf("%d\n",1); continue; } m=(float)atof(mm); if(m==0) { printf("%d\n",0); continue; } k=(int)m; for(i=0;i<125;i++) result[i]='0'; result[124]='1'; x=0; for(i=5;i>=0;i--) { if(mm[i]=='.') { x=5-i; break; } } if(m==k) x=0; m=m*pow(10,x); for(i=0;i<n;i++) compute(result,(long)m); print(result,x,n,k); } return 0; } void compute(char *result,long m) { int n,y,i; n=0; for(i=124;i>=0;i--) { y=(result[i]-'0')*m+n; n=y/10; result[i]=y%10+'0'; } } void print(char *result,int x,int n,int y) { int i,j,k=124; for(i=124;i>=124-x*n+1;i--) { if(result[i]!='0') { k=i; break; } } if(y) { for(i=0;i<=k;i++) { if(result[i]!='0') { for(j=i;j<=k;j++) { printf("%c",result[j]); if((j==125-x*n-1)&&(x!=0)) printf("."); } printf("\n"); break; } } } else { printf("."); for(i=125-n*x;i<=k;i++) printf("%c",result[i]); printf("\n"); } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator