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 大数加法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网上答疑(英语)第一部分
- 下一篇: 最舒适的降噪体验!SO魔浪S真无线蓝牙耳