两个长整数字符串求和(不允许使用ES6+)

embedded/2024/12/22 11:23:43/

两个长整数字符串求和(不允许使用ES6+), 面试手撸代码遇到到这个问题

1. 实现方式第一种

// 短整数字符串前边补 '0'; num需要补 '0' 的短整数字符串, len 长整数字符串的长度  
function fillZero (num, len) {let str = num.toString();if (str.length < len) {str = '0'.repeat(len - str.length) + str;}return str;}// 处理相加大于等于10进制问题; num1, num2 两个长度一样的长整数字符串function handlerCarry (num1, num2) {let arr = []for (let i = 0; i < num1.length; i++) {arr.push(Number(num1[i]) + Number(num2[i]))}arr = arr.reverse()arr.forEach((item, index) => {// console.log(item)if (item >= 10) {arr[index] = item - 10arr[index + 1] = arr[index + 1] ? arr[index + 1] + 1 : 1}})// console.log(arr)return arr.reverse().join('')}// 处理两个长整数字符串相加后返回结果字符串; num1, num2 长度不一定相等的两个长整数字符串function longIntStrSum (num1, num2) {let str = ''let len1 = num1.length;let len2 = num2.length;if (len1 < len2) {num1 = fillZero(num1, len2)} else if (len1 > len2) {num2 = fillZero(num2, len1)}str = handlerCarry(num1, num2)return str}let num1 = '123412412'let num2 = '967354215'console.log(longIntStrSum(num1, num2))

2. 借鉴他人的代码实现两个长整数字符串相加

function sumStrings (a, b) {var result = [], count = 0;if (a.length < b.length) b = [a, a = b][0];b = Array(a.length - b.length + 1).join('0') + b;var arrA = a.split('');var arrB = b.split('');for (var j = 0; j < a.length; j++) {var temp = (Number(arrA.pop()) + Number(arrB.pop())) + count;temp >= 10 ? [temp, count] = [temp - 10, 1] : count = 0;result.push(temp);}result.push(count);return result.reverse().join('').replace(/^0+/, '');
}
let sum = sumStrings('1234', '456789')
console.log(sum) // 458023

http://www.ppmy.cn/embedded/107991.html

相关文章

视觉语言模型(VLMs)知多少?

最近这几年&#xff0c;自然语言处理和计算机视觉这两大领域真是突飞猛进&#xff0c;让机器不仅能看懂文字&#xff0c;还能理解图片。这两个领域的结合&#xff0c;催生了视觉语言模型&#xff0c;也就是Vision language models (VLMs) &#xff0c;它们能同时处理视觉信息和…

PHP与Nginx配置优化:深入探讨Socket通信

在现代Web开发中&#xff0c;PHP和Nginx的组合是一种常见且高效的服务器配置。本文将深入探讨PHP-FPM&#xff08;FastCGI进程管理器&#xff09;与Nginx的配置&#xff0c;特别是关于它们之间的通信方式——Unix Domain Socket和TCP Socket的选择与优化。 PHP-FPM配置解析 首…

谷歌的 GameNGen:无需游戏引擎,人工智能模拟 “毁灭战士“,开辟新天地

谷歌公司的研究人员创建了一个神经网络&#xff0c;可以在不使用传统游戏引擎的情况下生成经典射击游戏《毁灭战士》的实时游戏&#xff0c;从而实现了人工智能领域的一个重要里程碑。这个名为 GameNGen 的系统标志着人工智能向前迈出了重要一步&#xff0c;它能在单芯片上以每…

提升竞争力:优化多门店网络的方法

新型门店网络通过先进技术和架构&#xff0c;实现高效、安全的数据传输&#xff0c;优化业务流程&#xff0c;从而提升零售企业的运营效率和客户体验。核心组成包括扁平化网络架构、强大的无线覆盖及安全措施。随着AI和5G的推进&#xff0c;未来门店网络将不断创新&#xff0c;…

前端学习笔记-Web APls篇-03

Dom事件进阶 1.事件流 事件流和两个阶段说明 事件流指的是事件完整执行过程中的流动路径 说明&#xff1a;假设页面里有个div&#xff0c;当触发事件时&#xff0c;会经历两个阶段&#xff0c;分别是捕获阶段、冒泡阶段简单来说&#xff1a;捕获阶段是 从父到子【大到小】 …

C++系统教程002-数据类型(01)

一、数据类型 学习一门编程语言&#xff0c;首先要掌握它的数据类型。不同的数据类型占用的内存空间不同&#xff0c;定义数据类型合理在一定程度上可以优化程序的运行。本次主要介绍C中常见的数据类型及数据的输入与输出格式。本章知识架构及重难点如下&#xff1a; &#xf…

mysql mgr 集群部署 单主模式和多主模式

mysql mgr集群部署 单主模式和多主模式 MGR介绍 MySQL Group Replication&#xff08;MGR&#xff1a;mysql组复制技术&#xff09;是MySQL官方在5.7.17版本引进的一个数据库高可用与高扩展的解决方案&#xff0c;以插件形式提供。 **MGR基于分布式paxos协议&#xff0c;实现…

小程序的页面跳转方式

102. 小程序的页面跳转方式 小程序是一种快速发展的应用形式&#xff0c;为用户提供了便捷的功能和交互体验。其中&#xff0c;页面跳转是小程序中常用的功能之一&#xff0c;本文将介绍小程序的页面跳转方式&#xff0c;并提供代码示例&#xff0c;帮助读者更好地理解和实现页…