Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
169838 C班徐柏涵 高精度乘法 C++ 通过 100 17 MS 15904 KB 644 2024-08-20 17:25:48

Tests(30/30):


#include<bits/stdc++.h> using namespace std; char A[2005],B[2005]; int a[2005],b[2005],c[4000005],x,t,k,i,j; bool sign=false; int main(){ memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); cin>>A>>B; int la=strlen(A),lb=strlen(B); k=la+lb; for(i=0;i<la;i++)a[i+1]=A[la-i-1]-48; for(i=0;i<lb;i++)b[i+1]=B[lb-i-1]-48; for(i=1;i<=la;i++){ x=0; for(j=1;j<=lb;j++){ t=a[i]*b[j]; c[i+j-1]=t%10+x+c[i+j-1]; x=t/10; if(c[i+j-1]>=10) x+=c[i+j-1]/10,c[i+j-1]%=10; } c[i+lb]=x; } for(i=k;i>0;i--){ if(c[i]!=0)sign=true; if(sign||i==1)printf("%d",c[i]); } return 0; }


测评信息: