社区讨论
求助(A*B 高精度)
学术版参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @lo7zhkh6
- 此快照首次捕获于
- 2023/10/27 10:18 2 年前
- 此快照最后确认于
- 2023/10/27 10:18 2 年前
C
#include <bits/stdc++.h>
using namespace std;
int a[50000001],b[50000001],c[50000001];
string A,B;
int len,lena,lenb;
int main(){
cin >> A >> B;
lena = A.length();
lenb = B.length();
for(int i = lena - 1;i >= 0;i --){
a[lena - i] = A[i] - '0';
}
for(int i = lenb - 1;i >= 0;i --){
b[lenb - i] = B[i] - '0';
}
for(int i = 1;i <= lenb;i ++){
for(int j = 1;j <= lenb;j ++){
c[i + j - 1] += a[i] * b[j];
}
}
len = lena + lenb;
for(int i = 1;i <= len;i ++){
c[i + 1] += c[i] / 10;
c[i] %= 10;
}
for(;!c[len];) len --;
for(int i = max(1,len);i >= 1;i --){
cout << c[i];
}
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...