写一个函数处理大数据的相加问题,所谓的大数据是指超出了整型,长整型之类的常规数据类型表示范围的数据。实现语言不限。
昨天在网上看到这道题,感觉很奇怪,难道还有什么算法能比原生的符号运算更快?看到这个链接:http://niutuku.com/tech/javaScript/258837.shtml,我测试了一下,大数据函数就出错,速度也明显不行,请教这道题的思路是什么? (链接源代码有笔误,我修改了下,贴在下面)
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
A Javascript library for arbitrary-precision decimal and non-decimal arithmetic
https://github.com/MikeMcl/bignumber.js
一个关于大数运算的 javascript 库。
原生 js 浮点数运算:
bignumber 运算:
回想起大一时候学ACM的时候做的大数相加题。 那个时候我自己想的思路是把大数当字符串输入,每位变成数字相加,有进位就进位,lz给的代码大概也是这个意思。当然高深的算法我没学下去。。可以搜索acm的大数相加,虽然基本上是c++的解法占多数。
这面试题明显是考查ACM方面的算法。。
前端考算法都是耍流氓,真想匿名这个问题简单debug一下就能发现问题所在了。大数字被表示为科学计数法了,如23909080089709873508234传参进去,在执行
arrA = (srcA + "").split("");这句代码的时候,表达式(srcA+"")实际上是“2.3909080089709876e+22”这样的字符串。