日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 加法原理_js 大数加法

發布時間:2024/1/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 加法原理_js 大数加法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/**大數加法

實現原理,利用豎式加法原理

*/

function addStrings(num_str1, num_str2) {

//字符串轉字符數組

const num_arr1 = num_str1.split('');

//字符串轉字符數組

const num_arr2 = num_str2.split('');

// 豎式加法計算次數

let sum_length = Math.max(num_arr1.length, num_arr2.length);

//求和結果

const sum = [];

//進位標志位

let CF = 0;

// 循環語句為什么加CF進位存在判斷呢,因為當最高位產生進位,(如 999 + 9999)

// 計算到千分位9的時候,并且沒有更多數要參與運算時,任然需要進位參與一次運算,否則丟失進位。

while (sum_length-- > 0 || CF) {

// 求和,注意數組長度不夠,按0算

let temp = Number.parseInt(num_arr1.pop() || 0)

+ Number.parseInt(num_arr2.pop() || 0) + CF;

if (temp >= 10) {

temp %= 10; // 取個位數

CF = 1; //產生進位(對于加法,最多產生1個進位)

} else {

CF = 0 // 未產生進位

}

sum.unshift(temp); // 記錄求和數據(從頭插入)

}

return sum.join('')

}

eg:

總結

以上是生活随笔為你收集整理的java 加法原理_js 大数加法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。