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

两个长整数字符串求和(不允许使用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.mzph.cn/news/878856.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Math Reference Notes: 三角函数术语的几何学解释

在三角函数中&#xff0c;“正”、“余”、“弦”、"割"这些词汇源自古代的几何学术语&#xff0c;它们与三角形的边和角的关系密切相关。 1. 弦&#xff08;sin&#xff0c;cos的含义&#xff09;&#xff1a; “弦”字来源于圆中的“弦线”&#xff0c;即连接圆周…

Mybatis【分页插件,缓存,一级缓存,二级缓存,常见缓存面试题】

文章目录 MyBatis缓存分页延迟加载和立即加载什么是立即加载&#xff1f;什么是延迟加载&#xff1f;延迟加载/懒加载的配置 缓存什么是缓存&#xff1f;缓存的术语什么是MyBatis 缓存&#xff1f;缓存的适用性缓存的分类一级缓存引入案例一级缓存的配置一级缓存的工作流程一级…

【JavaSE基础】Java 基础知识

Java 转义字符 Java 常用的转义字符 在控制台&#xff0c;输入 tab 键&#xff0c;可以实现命令补全 转义字符含义作用\t制表符一个制表位&#xff0c;实现对齐的功能\n &#xff1a;换行符\n换行符一个换行符\r回车符一个回车键 System.out.println(“韩顺平教育\r 北京”);&…

java实现,PDF转换为TIF

目录 ■JDK版本 ■java代码・实现效果 ■POM引用 ■之前TIF相关的问题&#xff08;两张TIF合并&#xff09; ■对于成果物TIF&#xff0c;需要考虑的点 ■问题 ■问题1&#xff1a;无法生成TIF&#xff0c;已解决 ■问题2&#xff1a;生成的TIF过大&#xff0c;已解决 …

RAG与LLM原理及实践(14)---RAG Python 前端构建技术Flask

目录 背景 Flask 简介 Flask 的特点 flask 安装 Flask python server 端处理 app 资源映射 router概念 Flask 客户端处理 Jinja2 概述 具体语法 实例 python 后端 代码 前端相关代码 代码解释 运行 check 启动日志 背景 本专栏之前的文章都在描述RAG后台的搭…

MySQL之DQL-分组函数

1、分组函数 1. 分组函数语法 分组函数也叫聚合函数。是对表中一组记录进行操作&#xff0c;每组只返回一个结果。我们只讲如下5个常用的分组函数&#xff1a; 分组函数 含义 MAX 求最大值 MIN 求最小值 SUM 求和 AVG 求平均值 COUNT 求个数 分组函数的语法如下…

Java中的强引用、软引用、弱引用和虚引用于JVM的垃圾回收机制

参考资料 https://juejin.cn/post/7123853933801373733 在 Java 中&#xff0c;引用类型分为四种&#xff1a;强引用&#xff08;Strong Reference&#xff09;、软引用&#xff08;Soft Reference&#xff09;、弱引用&#xff08;Weak Reference&#xff09;和虚引用&#xf…

水晶连连看 - 无限版软件操作说明书

水晶连连看 – 无限版游戏软件使用说明书 文章目录 水晶连连看 – 无限版游戏软件使用说明书1 引言1.1 编写目的1.2 项目名称1.3 项目背景1.4 项目开发环境 2 概述2.1 目标2.2 功能2.3 性能 3 运行环境3.1 硬件3.2 软件 4 使用说明4.1 游戏开始界面4.2 游戏设定4.2.1 游戏帮助4…

9.6学习记录+三场笔试

一、去哪儿笔试挚文集团 1.在调度算法中平均等待时间最短的是什么? 短作业优先 2.给定一个字符串s&#xff0c;最有效的找到其中第一个不重复的字符的方法是? 一、使用哈希表 创建一个哈希表&#xff0c;用于存储字符及其出现的次数。可以使用编程语言中提供的字典&#x…

AI学习指南深度学习篇-随机梯度下降法(Stochastic Gradient Descent,SGD)简介

AI学习指南深度学习篇-随机梯度下降法&#xff08;Stochastic Gradient Descent&#xff0c;SGD&#xff09;简介 在深度学习领域&#xff0c;优化算法是至关重要的一部分。其中&#xff0c;随机梯度下降法&#xff08;Stochastic Gradient Descent&#xff0c;SGD&#xff09…

Android 15 正式发布到 AOSP ,来了解下新特性和适配需求

其实在年初的时候就整理过《2024 &#xff0c;Android 15 预览版来了》 和《提前窥探 Android 15 的新功能与适配》的相关内容&#xff0c;而随着时间进度推进&#xff0c;近日谷歌也正式发布了 Android 15 的正式版&#xff0c;虽然没什么「大亮点」&#xff0c;但是作为开发者…

11.2.软件系统分析与设计-数据库分析与设计

数据库分析与设计 数据库分析与设计的步骤 ER图和关系模型

目标检测-YOLOv1

YOLOv1介绍 YOLOv1&#xff08;You Only Look Once version 1&#xff09;是一种用于目标检测的深度学习算法&#xff0c;由Joseph Redmon等人于2016年提出。它基于单个卷积神经网络&#xff0c;将目标检测任务转化为一个回归问题&#xff0c;通过在图像上划分网格并预测每个网…

基于发布-订阅模型的音视频流分发框架

有时需要同时网络推流和把流封装为某格式&#xff0c;或做一些其它操作。这就需要一个分发流的机制&#xff0c;把同一路流分发给多个使用者去操作&#xff0c;下面实现了一个简易的线程安全的音视频流分发框架。代码如下&#xff1a; avStreamHub.h #ifndef STREAMHUB_H #def…

python连接MySQL获取表中数据

import pymysql# 连接数据库 conn pymysql.connect(hostlocalhost,userroot,passwordroot,dbtest,charsetutf8mb4,cursorclasspymysql.cursors.DictCursor )def data_upload(key, value):# print(f"Key:{key},Value:{value}")print(f"{key},{value}")try:…

Ubuntu2204配置连续失败后账户锁定

配置启用pam_faillock sudo nano /etc/pam.d/common-auth在最上面添加以下内容 auth required pam_faillock.so preauth silent audit auth sufficient pam_unix.so nullok try_first_pass auth [defaultdie] pam_faillock.so authfail auditsudo nano /etc/pam.d/…

SealSuite 一站式 IT 管理与办公安全解决方案,助力出海企业夯实数字化底座

数字化办公时代&#xff0c;企业升级 IT 基础设施&#xff0c;已不再是选择题&#xff0c;而是必答题。 数字化办公时代&#xff0c;企业为何要升级 IT 基础设施&#xff1f; 随着时代变化与科技进步&#xff0c;人们的工作方式也发生了巨大变化。如今&#xff0c;远程办公、全…

VMware命令

打开终端&#xff1a;Ctrl Alt T 注意&#xff1a;时刻谨记空格号 自己常用命令&#xff1a; cd 拖入需要切换的文件夹&#xff1a;切换至指定文件夹&#xff1b; cd /&#xff1a;切换至根目录&#xff1b; unzip archive_name.zip&#xff1a;解压zip文件&#xff1b; na…

【论文精读】SCINet-基于降采样和交互学习的时序卷积模型

《SCINet: Time Series Modeling and Forecasting with Sample Convolution and Interaction》的作者团队来自香港中文大学,发表在NeurIPS 2022会议上。 动机 该论文的出发点是观察到时间序列数据具有独特的属性:即使在将时间序列下采样成两个子序列后,时间关系(例如数据…

科研小白成长记40——第三个五年计划

小gap期间&#xff0c;拼命玩和拼命休息的同时&#xff0c;仔细思考了下我期望的五年之后的样子&#xff0c;gap结束&#xff0c;算是目标愈发清晰起来。曾经&#xff0c;读博的目标是成为一名independent researcher&#xff0c;并且具备发至少一篇顶会的能力。而现在&#xf…