为什么运算结果会错
  • 板块P1303 A*B Problem
  • 楼主HbugU
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/5/11 21:07
  • 上次更新2023/10/28 01:39:36
查看原帖
为什么运算结果会错
510360
HbugU楼主2022/5/11 21:07
#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define fr first
#define se second
#define FAST ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
using namespace std;
string times(string as,string bs){
    string ans;
    int a[10100]={0},b[10100]={0},c[10100]={0};
    int lena=as.length(),lenb=bs.length();
    for(int i=lena-1,j=1;i>=0;i--,j++){
        a[j]=as[i]-'0';
    }
    for(int i=lenb-1,j=1;i>=0;i--,j++){
        b[j]=bs[i]-'0';
    }
    for(int i=1;i<=lena;i++){
        for(int j=1;j<=lenb;j++){
            c[i+j-1]+=a[i]*b[i];
        }
    }
    int len=lena+lenb;
    for(int i=1;i<=len;i++){
        c[i+1]+=c[i]/10;
        c[i]%=10;
    }
    while(!c[len]) len--;
    for(int i=len;i>=1;i--) ans+=c[i]+'0';
    return ans;
}
int main(){
    FAST;
    string A,B;
    cin>>A>>B;
    cout<<times(A,B);
    return 0;
}
2022/5/11 21:07
加载中...