摘要:字符串的長度不超過。本題含有多組樣例輸入。保證字符串只含有字符輸出描述輸出求和后的結(jié)果示例輸入輸出解題思路本題通過字符串操作實現(xiàn)超高精度的整數(shù)加法。
作者:Steven
版權(quán)聲明:著作權(quán)歸作者所有,商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處
輸入兩個用字符串表示的整數(shù),求它們所表示的數(shù)之和。
字符串的長度不超過10000。
本題含有多組樣例輸入。
輸入兩個字符串。保證字符串只含有"0"~"9"字符
輸出求和后的結(jié)果
輸入:
98765432101234567890
輸出:
11111111100
本題通過字符串操作實現(xiàn)超高精度的整數(shù)加法。首先輸入兩個字符串,并判斷長短,長字符串為被加數(shù),短字符串為加數(shù);設(shè)置進(jìn)位符,按長字符串倒序開始計算,當(dāng)短字符串當(dāng)前位大于等于0時,說明當(dāng)前處于加法階段,若兩數(shù)相加大于10,則進(jìn)位,刷新result字符串;當(dāng)加法結(jié)束后,還要考慮進(jìn)位,直到進(jìn)位完全結(jié)束,將剩下的長字符串字符補位;最后別忘了分析下進(jìn)位符狀態(tài),若為true,說明長字符串最高位數(shù)字還要進(jìn)一下位,即前面多個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; //進(jìn)位符 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; } } // 進(jìn)位階段 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; } } // 補數(shù)階段 else { result = char(Long[i]) + result; } --j; } // 若最后一次操作有進(jìn)位符的話,說明最終字符串還要在前面加個1,進(jìn)位 if(carry) { result="1"+result; } return result;}int main(){ string s1, s2; while (cin >> s1 >> s2) { cout << add(s1, s2) << endl; } return 0;}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/119104.html
摘要:要求輸出所有火車出站的方案,以字典序排序輸出。輸入描述有多組測試用例,每一組第一行輸入一個正整數(shù)輸出描述輸出以字典序從小到大排序的火車出站序列號,每個編號以空格隔開,每個輸出序列換行,具體見。 作者:翟天保Steven 版權(quán)聲明:著作權(quán)歸作者所有,商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明...
摘要:前言最近,朋友問了我這樣一個問題在中的運算結(jié)果,為什么是這樣的雖然我告訴他說,這是由于浮點數(shù)精度問題導(dǎo)致的。由于可以用階碼移動小數(shù)點,因此稱為浮點數(shù)。它的實現(xiàn)遵循標(biāo)準(zhǔn),使用位精度來表示浮點數(shù)。 showImg(https://segmentfault.com/img/remote/1460000018981071); 前言 最近,朋友 L 問了我這樣一個問題:在 chrome 中的運算...
摘要:后來我看了下,確實有這么一個擴展庫,處理任意精度數(shù)字,對于任意精度的數(shù)學(xué),提供了支持用字符串表示的任意大小和精度的數(shù)字的二進(jìn)制計算。 用編程語言做計算,很多時候浮點數(shù)精度都是困擾過我的問題,即便是剛學(xué)PHP的新手也會在群里問為什么我的計算結(jié)果明顯不對,而我們總是老態(tài)龍鐘的丟出一句浮點數(shù)計算都存在精度問題,并沒有提出過什么實質(zhì)性的改善。比如下面的計算 0.57*100: zhgxun-p...
摘要:標(biāo)準(zhǔn)二進(jìn)制浮點數(shù)算法就是一個對實數(shù)進(jìn)行計算機編碼的標(biāo)準(zhǔn)。然后把取出的整數(shù)部分按順序排列起來,先取的整數(shù)作為二進(jìn)制小數(shù)的高位有效位,后取的整數(shù)作為低位有效位。 浮點運算JavaScript 本文主要討論JavaScript的浮點運算,主要包括 JavaScript number基本類型 二進(jìn)制表示十進(jìn)制 浮點數(shù)的精度 number 數(shù)字類型 在JavaScript中,數(shù)字只有numb...
摘要:而所有的數(shù)據(jù)運算都是采用補碼進(jìn)行的。補碼解決負(fù)數(shù)加法運算正負(fù)零問題,彌補了反碼的不足。通過使用訪問修飾符可以使實例變量對子類可見暫時在學(xué)習(xí)基礎(chǔ)語法知識的時候可以暫時忽略實例變量這部分內(nèi)容,這部分內(nèi)容主要被使用在面向?qū)ο蟮牟糠郑菢O其重要。 showImg(https://segmentfault.com/img/remote/1460000019264541?w=600&h=242)...
閱讀 1398·2021-10-11 10:58
閱讀 1482·2021-09-04 16:41
閱讀 679·2019-08-30 15:55
閱讀 804·2019-08-29 18:46
閱讀 3144·2019-08-29 14:05
閱讀 3531·2019-08-26 14:00
閱讀 2455·2019-08-26 13:53
閱讀 3178·2019-08-26 13:29