依旧核弹炸蚊子
查看原帖
依旧核弹炸蚊子
1567314
maruize11楼主2025/6/15 11:08
#include<iostream>
#include<cstring>
using namespace std;
const int N=5000;
int a[N],b[N],c[N];

int main(){
    string s1,s2;
    cin>>s1>>s2;
    
    // 逆序存储
    int l1=s1.size(),l2=s2.size();
    for(int i=0;i<l1;i++) a[l1-i]=s1[i]-'0';
    for(int i=0;i<l2;i++) b[l2-i]=s2[i]-'0';

    // 逐位相乘
    for(int i=1;i<=l1;i++)
        for(int j=1;j<=l2;j++)
            c[i+j-1]+=a[i]*b[j];

    // 处理进位
    int len=l1+l2;
    for(int i=1;i<=len;i++){
        c[i+1]+=c[i]/10;
        c[i]%=10;
    }

    // 去除前导零
    while(c[len]==0 && len>1) len--;

    // 输出结果
    for(int i=len;i>=1;i--) cout<<c[i];
    return 0;
}

大家不要抄啊

2025/6/15 11:08
加载中...