高精度乘法,跟加法差不多。
#include <iostream>
#include <cstring>
using namespace std;
int result[201];
void stringToInt(string num, int bit[], int& count) {
count = 0;
for(int i = num.length() - 1; i >= 0; i--) {
bit[count++] = num[i] - '0';
}
}
void print() {
bool firstnotzero = false;
for(int i = 200; i >= 0; i--) {
if(result[i]) {
firstnotzero = true;
}
if(firstnotzero) {
cout << result[i];
}
else if(i == 0) {
cout << 0;
}
}
cout << endl;
}
void mul(string x, string y) {
int a[102] = {0}, b[102] = {0}, ca, cb;
stringToInt(x, a, ca);
stringToInt(y, b, cb);
for(int i = 0; i < cb; i++) {
for(int j = 0; j < ca; j++) {
result[j+i] += b[i] * a[j];
if(result[j+i] >= 10) {
result[j+i+1] += (result[j+i] / 10);
result[j+i] %= 10;
}
//print();
}
}
}
int main() {
int cases;
cin >> cases;
while(cases--) {
string a, b;
cin >> a >> b;
memset(result, 0, sizeof(result));
mul(a, b);
print();
}
return 0;
}