最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript趣题:大整数字符串相加

来源:动视网 责编:小采 时间:2020-11-27 20:26:04
文档

JavaScript趣题:大整数字符串相加

JavaScript趣题:大整数字符串相加:对于两个大整数字符串相加,很多语言提供了原生支持。比如Java,提供了BigInteger类,而JS这方面是没有支持的,实现就要靠咋们自己了。下面这个字符串相加函数,接收两个字符串参数,并返回它们相加之后的结果,也是字符串形式。主要思路还是逐位相加并进位,
推荐度:
导读JavaScript趣题:大整数字符串相加:对于两个大整数字符串相加,很多语言提供了原生支持。比如Java,提供了BigInteger类,而JS这方面是没有支持的,实现就要靠咋们自己了。下面这个字符串相加函数,接收两个字符串参数,并返回它们相加之后的结果,也是字符串形式。主要思路还是逐位相加并进位,


对于两个大整数字符串相加,很多语言提供了原生支持。

比如Java,提供了BigInteger类,而JS这方面是没有支持的,实现就要靠咋们自己了。

下面这个字符串相加函数,接收两个字符串参数,并返回它们相加之后的结果,也是字符串形式。

主要思路还是逐位相加并进位,实现时要考虑的细节还是蛮多的。

function sumStrings(a,b) { 
 //通过补零让a和b对齐 
 //若a比b短,则对a补零 
 while(a.length < b.length){ 
 a = "0" + a; 
 } 
 //若b比a短,则对b补零 
 while(b.length < a.length){ 
 b = "0" + b; 
 } 
 //是否有进位 
 var addOne = 0; 
 //结果数组 
 var result = []; 
 //从个位开始相加 
 for(var i=a.length-1;i>=0;i--){ 
 var c1 = a.charAt(i) - 0; 
 var c2 = b.charAt(i) - 0; 
 var sum = c1 + c2 + addOne; 
 //若数字相加大于9,则进位 
 if(sum > 9){ 
 result.unshift(sum - 10); 
 addOne = 1; 
 } 
 else{ 
 result.unshift(sum); 
 addOne = 0; 
 } 
 } 
 //应付下面的情况: 
 //"99" + "11" => "110" 
 //它最后仍然要进位 
 if(addOne){ 
 result.unshift(addOne); 
 } 
 //应付如下的情况 
 //"01" + "01" => "2" 
 //而不是"02",所以移除第一位的"0" 
 if(!result[0]){ 
 result.splice(0,1); 
 } 
 return result.join(""); 
}

文档

JavaScript趣题:大整数字符串相加

JavaScript趣题:大整数字符串相加:对于两个大整数字符串相加,很多语言提供了原生支持。比如Java,提供了BigInteger类,而JS这方面是没有支持的,实现就要靠咋们自己了。下面这个字符串相加函数,接收两个字符串参数,并返回它们相加之后的结果,也是字符串形式。主要思路还是逐位相加并进位,
推荐度:
标签: js 数字 相加
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top