摘要:字符串的長度不超過。本題含有多組樣例輸入。保證字符串只含有字符輸出描述輸出求和后的結果示例輸入輸出解題思路本題通過字符串操作實現超高精度的整數加法。
作者:Steven
版權聲明:著作權歸作者所有,商業轉載請聯系作者獲得授權,非商業轉載請注明出處
輸入兩個用字符串表示的整數,求它們所表示的數之和。
字符串的長度不超過10000。
本題含有多組樣例輸入。
輸入兩個字符串。保證字符串只含有"0"~"9"字符
輸出求和后的結果
輸入:
98765432101234567890
輸出:
11111111100
本題通過字符串操作實現超高精度的整數加法。首先輸入兩個字符串,并判斷長短,長字符串為被加數,短字符串為加數;設置進位符,按長字符串倒序開始計算,當短字符串當前位大于等于0時,說明當前處于加法階段,若兩數相加大于10,則進位,刷新result字符串;當加法結束后,還要考慮進位,直到進位完全結束,將剩下的長字符串字符補位;最后別忘了分析下進位符狀態,若為true,說明長字符串最高位數字還要進一下位,即前面多個1,完成。
#include #include using namespace std;string add(string s1, string s2){ string result,Long,Short; // 長+短 if (s1.size() > s2.size()) { Long = s1; Short = s2; } else { Long = s2; Short = s1; } int j = Short.size() - 1; //進位符 bool carry = false; for (int i = Long.size() - 1; i >= 0; --i) { // 加法階段 if (j >= 0) { int temp; if (carry) { temp = int(Long[i] - "0") + int(Short[j] - "0") + 1; } else { temp = int(Long[i] - "0") + int(Short[j] - "0"); } if (temp < 10) { result = char(temp + "0") + result; carry = false; } else { carry = true; temp -= 10; result = char(temp + "0") + result; } } // 進位階段 else if (carry) { int temp = int(Long[i] - "0") + 1; if (temp < 10) { result = char(temp + "0") + result; carry = false; } else { carry = true; temp -= 10; result = char(temp + "0") + result; } } // 補數階段 else { result = char(Long[i]) + result; } --j; } // 若最后一次操作有進位符的話,說明最終字符串還要在前面加個1,進位 if(carry) { result="1"+result; } return result;}int main(){ string s1, s2; while (cin >> s1 >> s2) { cout << add(s1, s2) << endl; } return 0;}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/119104.html
摘要:要求輸出所有火車出站的方案,以字典序排序輸出。輸入描述有多組測試用例,每一組第一行輸入一個正整數輸出描述輸出以字典序從小到大排序的火車出站序列號,每個編號以空格隔開,每個輸出序列換行,具體見。 作者:翟天保Steven 版權聲明:著作權歸作者所有,商業轉載請聯系作者獲得授權,非商業轉載請注明...
摘要:前言最近,朋友問了我這樣一個問題在中的運算結果,為什么是這樣的雖然我告訴他說,這是由于浮點數精度問題導致的。由于可以用階碼移動小數點,因此稱為浮點數。它的實現遵循標準,使用位精度來表示浮點數。 showImg(https://segmentfault.com/img/remote/1460000018981071); 前言 最近,朋友 L 問了我這樣一個問題:在 chrome 中的運算...
摘要:標準二進制浮點數算法就是一個對實數進行計算機編碼的標準。然后把取出的整數部分按順序排列起來,先取的整數作為二進制小數的高位有效位,后取的整數作為低位有效位。 浮點運算JavaScript 本文主要討論JavaScript的浮點運算,主要包括 JavaScript number基本類型 二進制表示十進制 浮點數的精度 number 數字類型 在JavaScript中,數字只有numb...
摘要:而所有的數據運算都是采用補碼進行的。補碼解決負數加法運算正負零問題,彌補了反碼的不足。通過使用訪問修飾符可以使實例變量對子類可見暫時在學習基礎語法知識的時候可以暫時忽略實例變量這部分內容,這部分內容主要被使用在面向對象的部分,但是極其重要。 showImg(https://segmentfault.com/img/remote/1460000019264541?w=600&h=242)...
閱讀 1395·2021-10-11 10:58
閱讀 1478·2021-09-04 16:41
閱讀 677·2019-08-30 15:55
閱讀 802·2019-08-29 18:46
閱讀 3140·2019-08-29 14:05
閱讀 3530·2019-08-26 14:00
閱讀 2452·2019-08-26 13:53
閱讀 3176·2019-08-26 13:29