我正在尝试解决一个在 codewars 上似乎很简单的 kata,但我似乎没有做对。
这个指令很简单,如下
给定两个整数的字符串表示,返回这些整数之和的字符串表示。
例如:
sumStrings('1','2') // => '3'
整数的字符串表示将不包含除“0”到“9”这十个数字之外的任何字符。
这就是我尝试过的
function sumStrings(a,b) {
return ((+a) + (+b)).toString();
}
Run Code Online (Sandbox Code Playgroud)
但结果解决了除两个之外的所有问题,这些是我得到的错误
sumStrings('712569312664357328695151392', '8100824045303269669937') - 预期:'712577413488402631964821329'74,而是 '574821329', got1204
sumStrings('50095301248058391139327916261', '81055900096023504197206408605') - 预期:'1311512013440818953248189532365'20009602365'2000960236518301836
我似乎不明白问题出在哪里。任何帮助都会有所帮助,谢谢。
小智 5
您输入的值大于 int 类型的最大值。您可以尝试将代码更改为:
function sumStrings(a,b) {
return ((BigInt(a)) + BigInt(b)).toString();
}
Run Code Online (Sandbox Code Playgroud)
这样它应该返回正确的值
| 归档时间: |
|
| 查看次数: |
3364 次 |
| 最近记录: |