HLEP!

P1303 A*B Problem

zyz1001 @ 2018-10-20 20:30:43

include<cstdio>

include<cstring>

using namespace std; struct sd{ int t[3000],len; }; sd readit( ){ sd x;char st[3000]; memset(x.t,0,sizeof(x.t)); scanf("%s",st); int k=0; x.len=strlen(st); for(int i=x.len-1;i>=0;i--){ x.t[k]=st[i]-48;k++; } return x; } sd add(sd a,sd b){ int k=a.len>b.len?a.len:b.len; for(int i=0;i<k;i++){ a.t[i]=a.t[i]+b.t[i]; a.t[i+1]=a.t[i+1]+a.t[i]/10; a.t[i]=a.t[i]%10; } a.len=1; for(int i=k;i>=1;i--) if(a.t[i]>0){ a.len=i+1;break; } return a; }

sd mult(sd a,sd b){ sd t; t.len=a.len+b.len; for(int i=0;i<a.len;i++) for(int j=0;j<b.len;j++){ t.t[i+j]=a.t[i]*b.t[j]+t.t[i+j]; t.t[i+j+1]=t.t[i+j]/10+t.t[i+j+1]; t.t[i+j]=t.t[i+j]%10; } a.len=1; for(int i=t.len;i>=1;i--) if(t.t[i]>0){ a.len=i+1;break; } for(int i=0;i<a.len+b.len;i++){ a.t[i]=t.t[i]; } return a; }

void outit(sd x){ for (int i=x.len-1;i>=0;i--){ printf("%d",x.t[i]); } }

int main(){ sd a=readit(),b=readit(),c; c=mult(a,b); outit(c); return 0; }


by touristX @ 2018-10-20 20:51:12

@王川德少 LZ英文不错啊。。HLEP。。。


上一页 |