传两个字符串进来,返回⼀个字符串
var addStrings = function(num1, num2) {
let result = '';
let i = num1.length - 1,
j = num2.length - 1,
carry = 0;
while (i >= 0 || j >= 0) {
let n1 = i >= 0 ? +num1[i] : 0;
let n2 = j >= 0 ? +num2[j] : 0;
const temp = n1 + n2 + carry;
carry = temp / 10 | 0;
result = `${temp % 10}${result}`;
i--;
j--;
}
if (carry === 1) result = `1${result}`;
return result;
};
传两个字符串进来,返回⼀个字符串
var multiply = function(num1, num2) {
let result = '0';
let i = num1.length - 1;
while (i >= 0) {
let subfixZero = new Array(num1.length - 1 - i).fill('0').join('');
let sumCount = +num1[i];
let tempSum = '0';
while (sumCount > 0) {
tempSum = bigSum(tempSum, num2);
sumCount--;
}
tempSum = `${tempSum}${subfixZero}`;
result = bigSum(result, tempSum);
i--;
}
// 处理⼀下开头的零
for (let i = 0; i < result.length; i++) {
if (result[i] !== '0') {
return result.slice(i);
}
}
return '0';
function bigSum(n1, n2) {
let result = '';
let i = n1.length - 1,
j = n2.length - 1,
curry = 0;
while (i >= 0 || j >= 0) {
let l1 = i >= 0 ? +n1[i] : 0;
let l2 = j >= 0 ? +n2[j] : 0;
let sum = l1 + l2 + curry;
curry = sum / 10 | 0;
result = `${sum % 10}${result}`;
i--;
j--;
}
if (curry === 1) result = `1${result}`;
return result;
}
};