/**
*
* @param num1 string字符串
* @param num2 string字符串
* @return string字符串
*/
function multiply( str1 , str2 ) {
// write code here
const num1Arr = str1.split('').reverse();
const num2Arr = str2.split('').reverse();
let basic = [];
let oth = [];
const ans = [];
if (num1Arr.length >= num2Arr.length) { // 较大的数为外层循环
basic = num1Arr;
oth = num2Arr;
} else {
basic = num2Arr;
oth = num1Arr;
}
let result = [];
for (let i = 0; i < basic.length; i++) {
for (let j = 0; j < oth.length; j++) {
result[i + j] = (result[i + j] || 0) + basic[i] * oth[j];
}
}
for (let k = 0; k < result.length; k++) {
if (result[k] > 9) {
result[k+1] = (result[k+1] || 0) + Math.floor(result[k] / 10);
result[k] = result[k] % 10;
}
}
result = result.reverse();
while (+result[0] === 0 && result.length !== 1) { // 避免输出 2333 * 0 = '0000'
result.splice(0, 1);
}
return result.join('');
}
module.exports = {
multiply : multiply
};
*
* @param num1 string字符串
* @param num2 string字符串
* @return string字符串
*/
function multiply( str1 , str2 ) {
// write code here
const num1Arr = str1.split('').reverse();
const num2Arr = str2.split('').reverse();
let basic = [];
let oth = [];
const ans = [];
if (num1Arr.length >= num2Arr.length) { // 较大的数为外层循环
basic = num1Arr;
oth = num2Arr;
} else {
basic = num2Arr;
oth = num1Arr;
}
let result = [];
for (let i = 0; i < basic.length; i++) {
for (let j = 0; j < oth.length; j++) {
result[i + j] = (result[i + j] || 0) + basic[i] * oth[j];
}
}
for (let k = 0; k < result.length; k++) {
if (result[k] > 9) {
result[k+1] = (result[k+1] || 0) + Math.floor(result[k] / 10);
result[k] = result[k] % 10;
}
}
result = result.reverse();
while (+result[0] === 0 && result.length !== 1) { // 避免输出 2333 * 0 = '0000'
result.splice(0, 1);
}
return result.join('');
}
module.exports = {
multiply : multiply
};