站外题求助

题目总版

wky_wsy @ 2024-10-06 22:20:27

题目传送门
蒟蒻不会大整数乘法。

#include <bits/stdc++.h>
using namespace std;
#define int long long
int a[1000],b[1000],c[1000];
string cheng(string s,string d){//乘法 
    string z;
    int ls=s.size();
    int ld=d.size();
    int lm=max(ls,ld);
    for(int i=0;i<ls;i++){
        a[i]=s[ls-i-1]-'0';

    }
    for(int i=0;i<ld;i++){
        b[i]=d[ld-i-1]-'0';

    }
    int l=lm,li=min(ls,ld);
    for(int i=0;i<li;i++){
        for(int j=0;j<lm;j++){
            if(li=ls){
                c[j]+=a[i]*b[j]*pow(10,i);

            }
            else c[j]+=a[j]*b[i]*pow(10,j);
            c[j+1]+=c[i]/10;
            c[j]%=10;
        }   
    }
    for(int i=lm;i<1000;i++){
        if(c[i-1]!=0) l++;
    }

    for(int i=l-1;i>-1;i--){
        z+=(char)(c[i]+'0');

    }
    return z;
}
signed main(){
    string s,d;
    cin>>s>>d;
    string z=cheng(s,d);
    cout<<z;
    return 0;
}

|