如何實現大整數相加
阿新 • • 發佈:2019-01-02
整數 .... 全部 兩個 步驟 最終 來看 如何實現 計算
思路:在程序中列出 “豎式” ,然後逐位相加。究竟是什麽樣子呢?我們以 426709752318 + 95481253129 為例,來看看大整數相加的詳細步驟:
第一步,把整數倒序存儲,整數的個位存於數組0下標位置,最高位存於數組長度-1下標位置。之所以倒序存儲,更加符合我們從左到右訪問數組的習慣。
第二步,創建結果數組,結果數組的最大長度是較大整數的位數+1,原因很明顯。
第三步,遍歷兩個數組,從左到右按照對應下標把元素兩兩相加,就像小學生計算豎式一樣。
例子中,最先相加的是數組A的第1個元素8和數組B的第1個元素9,結果是7,進位1。把7填充到Result數組的對應下標,進位的1填充到下一個位置:
第二組相加的是數組A的第2個元素1和數組B的第2個元素2,結果是3,再加上剛才的進位1,把4填充到Result數組的對應下標:
第三組相加的是數組A的第3個元素3和數組B的第3個元素1,結果是4,把4填充到Result數組的對應下標:
第四組相加的是數組A的第4個元素2和數組B的第4個元素3,結果是5,把5填充到Result數組的對應下標:
以此類推......一直把數組的所有元素都相加完畢:
第四步,把Result數組的全部元素再次逆序,去掉首位的,就是最終結果:
如何實現大整數相加