CODE[VS]——3117 高精度练习之乘法

3117 高精度练习之乘法

题目链接.

日常水题

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string a,b;
    cin>>a>>b;
    if(a.length()<b.length())swap(a,b);
    reverse(a.begin(),a.end());
    reverse(b.begin(),b.end());
    //cout<<a<<'\n'<<b;
    int aa[505],bb[505],ans[1010]={0};
    for(int i=0;i<a.length();i++)aa[i]=a[i]-'0';
    for(int i=0;i<b.length();i++)bb[i]=b[i]-'0';
    /*
    for(int i=0;i<a.length();i++)printf("%d",aa[i]);
    printf("\n");
    for(int i=0;i<b.length();i++)printf("%d",bb[i]);
    */
    for(int i=0;i<b.length();i++){
        for(int j=0;j<a.length();j++){
            ans[i+j]+=bb[i]*aa[j];
        }
    }
    for(int i=0;i<a.length()+b.length();i++){
        if(ans[i]>=10){
            ans[i+1]+=ans[i]/10;
            ans[i]=ans[i]%10;
        }
        //printf("%d ",ans[i]);
    }
    printf("\n");
    int have=0;
    for(int i=a.length()+b.length();i>=0;i--)
    {
        if(ans[i]!=0)have=1;
        if(have)printf("%d",ans[i]);
    }
    return 0;
} 

猜你喜欢

转载自www.cnblogs.com/--ChenShou--/p/10849141.html