帮我看看哪里需要改吧大佬们
  • 板块学术版
  • 楼主bsn666
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/16 18:24
  • 上次更新2025/1/16 21:36:03
查看原帖
帮我看看哪里需要改吧大佬们
1501265
bsn666楼主2025/1/16 18:24

给定两个非负整数(不含前导 0) 𝐴和𝐵,请你计算 𝐴×𝐵的值。

#include<bits/stdc++.h>
using namespace std;
int a[100001],b[5],c[100005];
string sum(string sa,string sb){
     if(sa=="0"||sb=="0"){
     return "0";
    }
     int lena=sa.size(),lenb=sb.size();
     for(int i=0;i<lena;i++){
        a[lena-i]=sa[i]-'0';
  }
    for(int i=0;i<lenb;i++){
        b[lenb-i]=sb[i]-'0';
  }
  for(int i=1;i<=lena;i++){
    for(int j=1;j<=lenb;j++){
      c[i+j-1]+=a[i]*b[j];
    }
  }
  for(int i=1;i<=lena+lenb;i++){
    c[i+1]+=c[i]/10;
    c[i]%=10;
  }
  string ans;
  if(c[lena+lenb]){
    ans+=c[lena+lenb]+'0';
  }
  for(int i=lena+lenb-1;i>=1;i--){
    ans+=c[i]+'0';
  }
  return ans;
}
int main()
{
  string sa,sb;
  cin>>sa>>sb;
  cout<<sum(sa,sb);
  return 0;

这个代码交上去是错的

2025/1/16 18:24
加载中...