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 |
无语了,discuss里的所以BT数据都对了,就是WA ,代码贴出来,哪位大牛指点一下#include <iostream> #include <cstdio> #include <cstring> #define N 200 using namespace std; int a[N],b[6],c[N]; int main() { char r[7]; int n; while(scanf("%s%d",r,&n)!=-1) { if(!n) {cout<<"1"<<endl;continue;} int i,j,k,t,fl=0,left=0,right=0,len; for(i=0;i<N;i++) { a[i]=0; c[i]=0; } for(i=0;i<6;i++) b[i]=0; len=strlen(r); for(i=len-1,j=0;i>=0;i--) { if(r[i]=='.') { fl=n*(len-1-i); continue; } b[j]=r[i]-'0'; a[j]=b[j]; j++; } for(t=0;t<n-1;t++) { for(i=0;i<6;i++) { for(j=0;j<N-6;j++) c[j+i]+=(a[j]*b[i]); for(k=0;k<N-1;k++) { c[k+1]+=(c[k]-c[k]%10)/10; c[k]%=10; } } for(i=0;i<N;i++) { a[i]=c[i]; c[i]=0; } }//模拟乘法 //输出格式 for(i=0;!a[i]&&i<N;i++); left=i; if(left==N) {cout<<"0"<<endl;continue;} for(i=N-1;!a[i];i--); right=i; if(left>=fl) { for(i=right;i>=fl;i--) cout<<a[i]; cout<<endl; } else if(left<fl&&fl<right+1) { for(i=right;i>=fl;i--) cout<<a[i]; cout<<"."; for(i=fl-1;i>=left;i--) cout<<a[i]; cout<<endl; } else if(fl>right) { cout<<"0."; for(i=fl-1;i>=left;i--) cout<<a[i]; cout<<endl; } } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator