大數相加問題c 做法

2021-10-06 01:57:45 字數 1106 閱讀 9607

大數相加問題c++做法

描述對您來說,我有乙個非常簡單的問題。給定兩個整數a和b,計算a + b的總和。

輸入由兩個正整數a和b組成。請注意,這些整數非常大,這意味著您不應使用32位整數對其進行處理。您可以假設每個整數的長度不超過1000。

輸出輸出sum,sum表示a + b的結果。

輸入樣例 1

1 2112233445566778899 998877665544332211

輸出樣例 1

31111111111111111110

提示陣列

思路:大數用int或long long 都存不下,將它存入string中,倒序訪問兩個字串,因為兩數相加時從個位開始加,從鍵盤輸入時,先輸入的是a[0],但其實它是乙個數的高位。

兩位相加時,加和對10取餘即為落下的位,加和除10即為進製。不要忘記最高位加和結束後是否有進製。

因輸入為string型別,所以要進行加和時記得-48。

使a永遠為兩個數中更大的數,這樣可以在倒序一位一位訪問兩個字串時

//兩數都有值時}if

(jw>0)

cout<<

"1";

//最高位加完之後還是否有進製,有就輸出1,因為兩個小於十的數相加,進製只可能是0或1

for(

int i=index-

1;i>=

0;i--

)//輸出因要得加和,也要大位先輸出

return0;

}

c 大數相加

在實現簡單的加法時,我們大都會採用直接相加輸出結果,但是如果兩個數非常大,已經超出了c 基本資料型別的表示範圍時,該如何解決?c 幾種基本資料型別 int 整型 4位元組 範圍 2147483648 2147483647float 實型 單精度 4位元組 範圍 1.18 10 38 3.40 10 ...

大數問題 相乘,相減,相加 C 實現

c 自帶的long long型別表示的最大值是9223372036854775807 19位 如果有兩個超過這個範圍的數進行運算,就不能使用c 編譯器自帶的 了。我們把這種大數用c 裡面的string型別進行處理,處理過程中要注意進製 借位 字元轉數字的問題。string add string st...

C語言大數相加

當要執行相加的兩個數超出c語言所能表示的範圍時,就不能用正常的加法運算來執行相加操作,這時候可以用兩個字元陣列接收要相加的兩個大數,然後從兩個大數的地位進行按位相加,並設定乙個進製標誌,如果標誌為1,表示有進製,否則沒有進製。要注意的是字元陣列的地位為數字的高位,所以要從陣列下標大的地方開始相加。i...