大数乘法和大数加法

本文阅读 0 分钟
首页 知识库 正文
  1. var multiply = function (num1, num2) {
  2. if (num1 === "0" || num2 === "0") {
  3. return "0";
  4. }
  5. let num1s = num1.split("");
  6. let num2s = num2.split("");
  7. num1s.reverse();
  8. num2s.reverse();
  9. function add(a, b) {
  10. a = a.split("").reverse();
  11. b = b.split("").reverse();
  12. let len = Math.max(a.length, b.length);
  13. let c = 0;
  14. let r = [];
  15. for (let i = 0; i < len; i++) {
  16. let d = Number(a[i] || 0) + Number(b[i] || 0) + c;
  17. let e = 0;
  18. if (d >= 10) {
  19. e = d - 10;
  20. c = 1;
  21. } else {
  22. e = d;
  23. c = 0;
  24. }
  25. r[i] = e;
  26. }
  27. if (c === 1) {
  28. r[r.length] = 1;
  29. }
  30. return r.reverse().join("");
  31. }
  32. let results = [];
  33. for (let i = 0; i < num1s.length; i++) {
  34. for (let j = 0; j < num2s.length; j++) {
  35. let zero = Array.from({ length: i + j })
  36. .fill(0)
  37. .join("");
  38. results.push(Number(num1s[i]) * Number(num2s[j]) + zero);
  39. }
  40. }
  41. return results.reduce((acc, c) => {
  42. return add(acc, c);
  43. });
  44. };
解压密码: detechn或detechn.com

免责声明

本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。

本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。

本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。

写一个关于全排列,全组合的函数
« 上一篇 05-28
如何求数组中的 TOP k
下一篇 » 05-28

发表评论