国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

華為機試HJ57:高精度整數加法

AdolphLWQ / 1477人閱讀

摘要:字符串的長度不超過。本題含有多組樣例輸入。保證字符串只含有字符輸出描述輸出求和后的結果示例輸入輸出解題思路本題通過字符串操作實現超高精度的整數加法。

作者: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

相關文章

  • 華為機試HJ77:火車進站

    摘要:要求輸出所有火車出站的方案,以字典序排序輸出。輸入描述有多組測試用例,每一組第一行輸入一個正整數輸出描述輸出以字典序從小到大排序的火車出站序列號,每個編號以空格隔開,每個輸出序列換行,具體見。 作者:翟天保Steven 版權聲明:著作權歸作者所有,商業轉載請聯系作者獲得授權,非商業轉載請注明...

    muzhuyu 評論0 收藏0
  • 「干貨」細說 Javascript 中的浮點數精度丟失問題(內附好課推薦)

    摘要:前言最近,朋友問了我這樣一個問題在中的運算結果,為什么是這樣的雖然我告訴他說,這是由于浮點數精度問題導致的。由于可以用階碼移動小數點,因此稱為浮點數。它的實現遵循標準,使用位精度來表示浮點數。 showImg(https://segmentfault.com/img/remote/1460000018981071); 前言 最近,朋友 L 問了我這樣一個問題:在 chrome 中的運算...

    senntyou 評論0 收藏0
  • PHP處理數學精度

    摘要:后來我看了下,確實有這么一個擴展庫,處理任意精度數字,對于任意精度的數學,提供了支持用字符串表示的任意大小和精度的數字的二進制計算。 用編程語言做計算,很多時候浮點數精度都是困擾過我的問題,即便是剛學PHP的新手也會在群里問為什么我的計算結果明顯不對,而我們總是老態龍鐘的丟出一句浮點數計算都存在精度問題,并沒有提出過什么實質性的改善。比如下面的計算 0.57*100: zhgxun-p...

    chaos_G 評論0 收藏0
  • JavaScript浮點運算0.2+0.1 !== 0.3

    摘要:標準二進制浮點數算法就是一個對實數進行計算機編碼的標準。然后把取出的整數部分按順序排列起來,先取的整數作為二進制小數的高位有效位,后取的整數作為低位有效位。 浮點運算JavaScript 本文主要討論JavaScript的浮點運算,主要包括 JavaScript number基本類型 二進制表示十進制 浮點數的精度 number 數字類型 在JavaScript中,數字只有numb...

    iflove 評論0 收藏0
  • Java基礎語法知識你真的都會嗎?

    摘要:而所有的數據運算都是采用補碼進行的。補碼解決負數加法運算正負零問題,彌補了反碼的不足。通過使用訪問修飾符可以使實例變量對子類可見暫時在學習基礎語法知識的時候可以暫時忽略實例變量這部分內容,這部分內容主要被使用在面向對象的部分,但是極其重要。 showImg(https://segmentfault.com/img/remote/1460000019264541?w=600&h=242)...

    DirtyMind 評論0 收藏0

發表評論

0條評論

AdolphLWQ

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<