为什么通过率一直是20分
  • 板块题目总版
  • 楼主xfyszbd
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/1/22 22:40
  • 上次更新2025/1/23 10:19:17
查看原帖
为什么通过率一直是20分
1637957
xfyszbd楼主2025/1/22 22:40

A*B Problem

题目背景

高精度乘法模板题。

题目描述

给出两个非负整数,求它们的乘积。

输入格式

输入共两行,每行一个非负整数。

输出格式

输出一个非负整数表示乘积。

样例 #1

样例输入 #1

1 
2

样例输出 #1

2

提示

每个非负整数不超过 10200010^{2000}

#include using namespace std; int a[2005],b[2005],c[4005]; string chen(string ad,string bd) {if(ad=="0"||bd=="0") return "0"; int lena=ad.size(); int lenb=bd.size(); for(int i=0;i<lena;i++) a[i]=ad[lena-1-i]-'0'; for(int j=0;j<lenb;j++) { b[j]=bd[lenb-1-j]-'0'; } for(int i=0;i<lena;i++) for(int j=0;j<lenb;j++) c[i+j]+=a[i]*b[j]; for(int i=0;i<lena+lenb;i++) { c[i+1]+=c[i]/10; c[i]=c[i]%10; } string cd; if(c[lena+lenb-1])//防止输出像0132这种数 cd+=std::to_string(c[lena+lenb-1]); for(int i=0;i<lena+lenb;i++) cd+=std::to_string(c[lena+lenb-1-i]); return cd; } int main() { string ad,bd; cin>>ad>>bd; cout<<chen(ad,bd); return 0; }

2025/1/22 22:40
加载中...