dalao啊,你这个代码我看着都不像这题的,我都看不懂了,有点复杂,我给你我的代码参考一下
by wuzhiyuan123 @ 2024-02-21 20:58:08
```cpp
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
string a1,b1;
int a[1000010],b[1000010],c[1000010];
int main()
{
//freopen("input.txt", "r", stdin);//这行代码在提交的时候记得删掉,如果你不知道这行代码的意思可以删掉
cin >> a1 >> b1;
int len1 =0;
//不想算了,特判一下
if((a1.length()==1&&a1[1]==0)||(b1.length()==1&&b1[1]==0)){
cout << 0;
return 0;
}
//输入,吧正着的倒过来
for(int i=a1.length()-1, j=1;i>=0;i--, j++){
a[j] = a1[i] - '0';
}
for(int i=b1.length()-1, j=1;i>=0;i--, j++){
b[j] = b1[i] - '0';
}
//开始做乘法,把a[i]*b[j]的结果放的c[i+j-1],至于为什么这么放画个表格就知道了
for(int i=1;i<=a1.length();i++){
for(int j=1;j<=b1.length();j++){
c[i+j-1]+=a[i]*b[j];
len1=max(i+j-1, len1);
}
}
//进位
int len2=len1;
for(int i=1;i<=len2;i++){
if(c[i]>=10){
int change = c[i]/10;
c[i]=c[i]%10;
c[i+1]+=change;
if(i==len2) len1++;
}
}
//倒着输出得到正的数
for(int i=len1;i>0;i--){
cout << c[i];
}
return 0;
}
```
by wuzhiyuan123 @ 2024-02-21 21:07:41