A*B 高静度

和+,-,一样

#include<bits/stdc++.h>
using namespace std;
char a[10001],b[10001];
int x[10001],y[10001],i,j,len,n1,n2,jw=0,c[10001];
int main()
{
    
    cin>>a>>b;
    n1=strlen(a);
    n2=strlen(b);
    for(i=0;i<n1;i++)    x[n1-i]=a[i]-'0';
    for(i=0;i<n2;i++)    y[n2-i]=b[i]-'0';
    for(i=1;i<=n1;i++)
    {
    	int ans=0;
    	for(j=1;j<=n2;j++)
    	{
    		c[i+j-1]=x[i]*y[j]+ans+c[i+j-1];//因为i=1,j=1,所以i+j-1存积 
    		ans=c[i+j-1]/10;//进位 
    		c[i+j-1]%=10;
		}
    	c[i+n2]=ans;
    }
    len=n1+n2;
    while(c[len]==0&&len>1) len--;//去0 
    for(i=len;i>=1;i--) cout<<c[i];
}

  

原文地址:https://www.cnblogs.com/dai-jia-ye/p/9259319.html