大数乘法和大数加法
- var multiply = function (num1, num2) {
- if (num1 === "0" || num2 === "0") {
- return "0";
- }
- let num1s = num1.split("");
- let num2s = num2.split("");
- num1s.reverse();
- num2s.reverse();
-
- function add(a, b) {
- a = a.split("").reverse();
- b = b.split("").reverse();
- let len = Math.max(a.length, b.length);
- let c = 0;
- let r = [];
- for (let i = 0; i < len; i++) {
- let d = Number(a[i] || 0) + Number(b[i] || 0) + c;
- let e = 0;
- if (d >= 10) {
- e = d - 10;
- c = 1;
- } else {
- e = d;
- c = 0;
- }
- r[i] = e;
- }
- if (c === 1) {
- r[r.length] = 1;
- }
- return r.reverse().join("");
- }
- let results = [];
- for (let i = 0; i < num1s.length; i++) {
- for (let j = 0; j < num2s.length; j++) {
- let zero = Array.from({ length: i + j })
- .fill(0)
- .join("");
- results.push(Number(num1s[i]) * Number(num2s[j]) + zero);
- }
- }
- return results.reduce((acc, c) => {
- return add(acc, c);
- });
- };
解压密码: detechn或detechn.com
免责声明
本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。
本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。