超長正整數的加法

2021-09-29 19:38:59 字數 1511 閱讀 7867

【問題描述】

編寫程式實現兩個超長正整數(每個最長80位數字)的加法運算。

【輸入形式】

從鍵盤讀入兩個整數,要考慮輸入高位可能為0的情況(如00083)。

第一行是超長正整數a;

第二行是超長正整數b;

【輸出形式】1.用字串輸入兩個超長整數,分別存放在兩個字串中,每一位對應乙個字串中的字元。

2.以較短的超長整數為基準,從低位到高位,對應位轉換成數字後相加,再加上前一位相加的進製,得到的和模上10再轉換為字元即為當前位,得到的和整除10即為當前位的進製。將計算得到的每一位儲存到結果字元陣列。

3.將較長字串的剩餘位加上最後乙個進製移到結構陣列後面。

4.將結果陣列反序輸出(去掉高位多餘的0)。

【輸入樣例】

134098703578230056

234098

【輸出樣例】

134098703578464154

【樣例說明】

進行兩個正整數加法運算,134098703578230056 + 234098 = 134098703578464154。

方法一(c++)

#

include

#include

intmain()

else

//陣列x為長字串數 ,m為長字串的長度

int k =0;

//k代表最前面的0的個數

for(i = m -

1; i >=

0; i--

) m = m - k;

int count =

0, num =

0, num1, num2;

//count代表進製

for(i = n; i < m; i++

) y[i]

='0'

;for

(i =

0; i < m; i++)if

(count ==1)

//若一直進製,最終最高位是1

printf

("1");

for(i = m; i >=

0; i--

)//反序輸出

return0;

}void

exchange

(char a,

char b,

int n)

方法二(python)

如果你的編譯環境可以選擇python的話,一步到位

a =

int(

input()

)b =

int(

input()

)print

(a+b)

超長正整數的加法

請設計乙個演算法來完成兩個超長正整數的加法。問題分析與演算法設計 首先要設計一種資料結構來表示乙個超長的正整數,然後才能夠設計演算法。首先我們採用乙個帶有表頭結點的環形鏈來表示乙個非負的超大整數,如果從低位開始為每 個數字編號,則第一位到第四位 第五位到第八位.的每四位組成的數字,依次放在鍊錶的第乙...

超長正整數相加

請設計乙個演算法完成兩個超長正整數的加法。輸入引數 string addend 加數 string augend 被加數 返回值 加法結果 思路 兩個數相加,可先將兩個數長度對齊,短的用0補齊後再計算。兩個數相加的結果長度至多為較大的數長度加1。可以用乙個陣列來存放結果。public class m...

超長正整數相加

請設計乙個演算法完成兩個超長正整數的加法。介面說明 輸入引數 string addend 加數 string augend 被加數 返回值 加法結果 public string addlonginteger string addend,string augend 輸入描述 輸入兩個字串數字 輸出描述...