1307:【例1.3】高精度乘法
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
int main() {
string a1, b1;
cin >> a1 >> b1;
int a[105] = {}, b[106] = {}, lena = a1.length(), lenb = b1.length(); // 1234, 234
for (int i = 0; i < lena; i++) {
a[lena - 1 - i] = a1[i] - 48;
}
for (int i = 0; i < lenb; i++) {
b[lenb - 1 - i] = b1[i] - 48;
}
int c[10005] = {};
for(int i=0;i<lena;i++){
int y = 0;
for(int j=0;j<lenb;j++){
c[i + j] += a[i] * b[j] + y;
y = c[i + j] / 10;
c[i + j] %= 10;
}
c[lenb + i] = y;
}
bool q = 0;
int lenc = lena + lenb; // 000001234560004567
for(int i=0;i<lenc;i++){
if(q || c[lenc - 1 - i]){
cout << c[lenc - 1 - i];
q = 1;
}
}
return 0;
}


如果有疑問的朋友可以詳見是視頻講解,謝謝!
標簽: