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 |
求救大虾hawkIn Reply To:Re:测试数据有问题啊!!!!!!!!!! Posted by:00448177 at 2005-03-29 18:01:54 尊敬的hawk; 题干说多余的0可以忽略,所以10.0002结果是1。 请看以下我的代码,它是你觉得是数组越界还是栈空间不够。sample是过的. #include <iostream.h> #include <math.h> #include <string.h> char d[200]; char *cheng(char *a,char* b,int i) { char c[200]; for(int m=0;m<199;m++){d[m]='0';c[m]='0';} d[m]='\0'; c[m]='\0'; int y=0; for(int x=198;x>i;x--) { int carry=0; for( m=0;m<199;m++) {c[m]='0';}c[m]='\0'; for(int k=198;k>=0;k--) { int s=(a[x]-'0')*(b[k]-'0')+carry; c[k-y]=s%10+'0'; carry=s/10; } y++; carry=0; for(int v=198;v>=0;v--) { d[v]=(d[v]-'0')+(c[v]-'0')+carry+'0'; if((d[v]-'0')>9) { d[v]='0'+(d[v]-'0')%10; carry=1; }else carry=0; } } return d; } void main() { char a[200],c[200]; for(int m=0;m<199;m++)c[m]='0';c[m]='\0'; int i, n,x,y,v=0; char b[7]; while(cin>>b) { cin>>n; i=198; for(int j=5;j>=0;j--) { if(b[j]!='.') a[i--]=b[j]; else y=5-j; } x=i; for(;i>=0;i--)a[i]='0'; a[199]='\0'; strcpy(c,cheng(a,a,x)); for( m=1;m<n-1;m++) { strcpy(c,cheng(a,c,x)); } for(int s=0;c[s]=='0';){s++;} for(int e=198;c[e]=='0';){e--;} if(s<199-n*y)v=s;else v=199-n*y; for( ;v<=e;v++) { {if(v==199-n*y)cout<<'.';} cout<<c[v]; } cout<<endl; } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator