Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C - 43. Multiply Strings
題目:

解答:
char* multiply(char* num1, char* num2)
{
int i = 0;
int j = 0;
int n1_size = strlen(num1);
int n2_size = strlen(num2);
char *t = calloc(n1_size + n2_size, sizeof(char));
char *r = calloc(n1_size + n2_size + 1, sizeof(char));
for (i = n1_size - 1; i >= 0; i--) {
for (j = n2_size - 1; j >= 0; j--) {
int m = (num1[i] - '0') * (num2[j] - '0');
int sum = m + t[i + j + 1];
t[i + j + 1] = sum % 10;
t[i + j] += (sum / 10);
}
}
j = 0;
for (i = 0; i < (n1_size + n2_size); i++) {
if (j || t[i]) {
r[j++] = t[i] + '0';
}
}
if (j == 0) {
r[0] = '0';
}
return r;
}