博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【算法图解|1】js 实现一个函数,完成超过范围的两个大整数相加功能
阅读量:2046 次
发布时间:2019-04-28

本文共 645 字,大约阅读时间需要 2 分钟。

这个问题中的两个数字,都是超出范围的,所以就不能简单的把两个数字,转为Number类型,进行相加。

需要取两个数字的每一位,进行相加,大于10,就进1,把结果保存在一个字符串中。

 

主要思路是通过将数字转换为字符串,然后每个字符串在按位相加。function bigNumberAdd(number1, number2) {    let result = "", // 保存最后结果    carry = false; // 保留进位结果    // 将字符串转换为数组    number1 = number1.split("");    number2 = number2.split("");    // 当数组的长度都变为0,并且最终不再进位时,结束循环    while (number1.length || number2.length || carry) {    // 每次将最后的数字进行相加,使用~~的好处是,即使返回值为 undefined 也能转换为 0    carry += ~~number1.pop() + ~~number2.pop();    // 取加法结果的个位加入最终结果    result = carry % 10 + result;    // 判断是否需要进位,true 和 false 的值在加法中会被转换为 1 和 0    carry = carry > 9;    }    // 返回最终结果    return result;}

 

转载地址:http://hglof.baihongyu.com/

你可能感兴趣的文章
ie8 加载不到js 报SCRIPT1028: 缺少标识符、字符串或数字 ;SCRIPT5009: “anorectaSearch”未定义
查看>>
mybatis 根据 数据库表 自动生成 实体
查看>>
win10将IE11兼容ie10
查看>>
Kettle WebService组件无法传参问题解决
查看>>
checkbox设置字体颜色
查看>>
统计:分组统计后只加合计,不加小计 group by rollup
查看>>
第一篇 HelloWorld.java重新学起
查看>>
ORACLE表空间扩张
查看>>
oracl 锁表 解锁 杀死进程
查看>>
orcal 循环执行sql
查看>>
web.xml配置监听器,加载数据库信息配置文件ServletContextListener
查看>>
ORACLEL临时表空间扩张
查看>>
java 构造方法
查看>>
java 单例模式
查看>>
java 类被加载
查看>>
判断两个object是否相等
查看>>
hashCode()方法和equal()方法
查看>>
java 并行和并发
查看>>
Java多线程实现的四种方式
查看>>
Java多线程问题总结
查看>>