【算法】高精度乘法
#include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int maxn=100; char s1[maxn],s2[maxn]; int a[maxn],b[maxn],c[maxn],lena,lenb,lenc; int main(){ scanf("%s%s",s1,s2); lena=strlen(s1);lenb=strlen(s2); for(int i=0;i<lena;i++)a[lena-i]=s1[i]-‘0‘; for(int i=0;i<lenb;i++)b[lenb-i]=s2[i]-‘0‘; for(int i=1;i<=lena;i++){ int x=0; for(int j=1;j<=lenb;j++){ x=a[i]*b[j]+x+c[i+j-1]; c[i+j-1]=x%10; x/=10; } c[i+lenb]=x; } lenc=lena+lenb; while(lenc>1&&!c[lenc])lenc--; for(int i=lenc;i>=1;i--)printf("%d",c[i]); return 0; }
时间: 2024-10-05 11:36:40