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 |
Re:求救大虾hawkIn Reply To:求救大虾hawk Posted by:00448177 at 2005-03-29 18:34:41 > 尊敬的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