UVA 10106 Product(大数乘法)
发布时间:2020-12-14 04:04:05 所属栏目:大数据 来源:网络整理
导读:The Problem ? The problem is to multiply two integers X,Y. (0=X,Y10250) ? The Input ? The input will consist of a set of pairs of lines. Each line in pair contains one multiplyer. ? The Output ? For each input pair of lines the output line
The Problem?The problem is to multiply two integers X,Y. (0<=X,Y<10250) ? The Input?The input will consist of a set of pairs of lines. Each line in pair contains one multiplyer. ? The Output?For each input pair of lines the output line should consist one integer the product. ? Sample Input?? ?12 12 2 222222222222222222222222 ? ? ? Sample Output?? ?144 444444444444444444444444 代码: #include<iostream> #include<cstdio> #include<cmath> #include<cstring> using namespace std; void bigmul(char *a,char *b,char *c) { int la,lb,lc,i,j,aa[1000],bb[1000],cc[3000],t,n; la=strlen(a)-1; lb=strlen(b)-1; for(i=la,j=0;i>=0;i--) aa[j++]=a[i]-'0'; for(i=lb,j=0;i>=0;i--) bb[j++]=b[i]-'0'; memset(cc,sizeof(cc)); for(i=0;i<=la;i++) for(j=0;j<=lb;j++) cc[i+j]+=aa[i]*bb[j]; for(i=0;i<=la+lb+5;i++) { t=cc[i]/10; cc[i+1]+=t; cc[i]=cc[i]-t*10;} for(i=la+lb+5;i>=0;i--) if(cc[i]!=0) break; if(i==-1) strcpy(c,"0"); else { n=i; for(i=0,j=n;i<j;i++,j--) { t=cc[i];cc[i]=cc[j];cc[j]=t; } for(i=0;i<=n;i++) c[i]=cc[i]+'0'; c[i]=' '; } } int main() { char b[1000],a[1000],c[2000]; while(~scanf("%s%s",a,b)) { bigmul(a,b,c); printf("%sn",c); } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |