成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

華為機(jī)試HJ57:高精度整數(shù)加法

AdolphLWQ / 1488人閱讀

摘要:字符串的長(zhǎng)度不超過(guò)。本題含有多組樣例輸入。保證字符串只含有字符輸出描述輸出求和后的結(jié)果示例輸入輸出解題思路本題通過(guò)字符串操作實(shí)現(xiàn)超高精度的整數(shù)加法。

作者:Steven
版權(quán)聲明:著作權(quán)歸作者所有,商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處

題目描述:

輸入兩個(gè)用字符串表示的整數(shù),求它們所表示的數(shù)之和。

字符串的長(zhǎng)度不超過(guò)10000。

本題含有多組樣例輸入。

輸入描述:

輸入兩個(gè)字符串。保證字符串只含有"0"~"9"字符

輸出描述:

輸出求和后的結(jié)果

示例:

輸入:

98765432101234567890

輸出:

11111111100

解題思路:

本題通過(guò)字符串操作實(shí)現(xiàn)超高精度的整數(shù)加法。首先輸入兩個(gè)字符串,并判斷長(zhǎng)短,長(zhǎng)字符串為被加數(shù),短字符串為加數(shù);設(shè)置進(jìn)位符,按長(zhǎng)字符串倒序開(kāi)始計(jì)算,當(dāng)短字符串當(dāng)前位大于等于0時(shí),說(shuō)明當(dāng)前處于加法階段,若兩數(shù)相加大于10,則進(jìn)位,刷新result字符串;當(dāng)加法結(jié)束后,還要考慮進(jìn)位,直到進(jìn)位完全結(jié)束,將剩下的長(zhǎng)字符串字符補(bǔ)位;最后別忘了分析下進(jìn)位符狀態(tài),若為true,說(shuō)明長(zhǎng)字符串最高位數(shù)字還要進(jìn)一下位,即前面多個(gè)1,完成。

測(cè)試代碼:

#include #include using namespace std;string add(string s1, string s2){	string result,Long,Short;    // 長(zhǎng)+短	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;			}		}        // 補(bǔ)數(shù)階段		else {			result = char(Long[i]) + result;		}		--j;	}    // 若最后一次操作有進(jìn)位符的話(huà),說(shuō)明最終字符串還要在前面加個(gè)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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/119104.html

相關(guān)文章

  • 華為機(jī)試HJ77:火車(chē)進(jìn)站

    摘要:要求輸出所有火車(chē)出站的方案,以字典序排序輸出。輸入描述有多組測(cè)試用例,每一組第一行輸入一個(gè)正整數(shù)輸出描述輸出以字典序從小到大排序的火車(chē)出站序列號(hào),每個(gè)編號(hào)以空格隔開(kāi),每個(gè)輸出序列換行,具體見(jiàn)。 作者:翟天保Steven 版權(quán)聲明:著作權(quán)歸作者所有,商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明...

    muzhuyu 評(píng)論0 收藏0
  • 「干貨」細(xì)說(shuō) Javascript 中的浮點(diǎn)數(shù)精度丟失問(wèn)題(內(nèi)附好課推薦)

    摘要:前言最近,朋友問(wèn)了我這樣一個(gè)問(wèn)題在中的運(yùn)算結(jié)果,為什么是這樣的雖然我告訴他說(shuō),這是由于浮點(diǎn)數(shù)精度問(wèn)題導(dǎo)致的。由于可以用階碼移動(dòng)小數(shù)點(diǎn),因此稱(chēng)為浮點(diǎn)數(shù)。它的實(shí)現(xiàn)遵循標(biāo)準(zhǔn),使用位精度來(lái)表示浮點(diǎn)數(shù)。 showImg(https://segmentfault.com/img/remote/1460000018981071); 前言 最近,朋友 L 問(wèn)了我這樣一個(gè)問(wèn)題:在 chrome 中的運(yùn)算...

    senntyou 評(píng)論0 收藏0
  • PHP處理數(shù)學(xué)精度

    摘要:后來(lái)我看了下,確實(shí)有這么一個(gè)擴(kuò)展庫(kù),處理任意精度數(shù)字,對(duì)于任意精度的數(shù)學(xué),提供了支持用字符串表示的任意大小和精度的數(shù)字的二進(jìn)制計(jì)算。 用編程語(yǔ)言做計(jì)算,很多時(shí)候浮點(diǎn)數(shù)精度都是困擾過(guò)我的問(wèn)題,即便是剛學(xué)PHP的新手也會(huì)在群里問(wèn)為什么我的計(jì)算結(jié)果明顯不對(duì),而我們總是老態(tài)龍鐘的丟出一句浮點(diǎn)數(shù)計(jì)算都存在精度問(wèn)題,并沒(méi)有提出過(guò)什么實(shí)質(zhì)性的改善。比如下面的計(jì)算 0.57*100: zhgxun-p...

    chaos_G 評(píng)論0 收藏0
  • JavaScript浮點(diǎn)運(yùn)算0.2+0.1 !== 0.3

    摘要:標(biāo)準(zhǔn)二進(jìn)制浮點(diǎn)數(shù)算法就是一個(gè)對(duì)實(shí)數(shù)進(jìn)行計(jì)算機(jī)編碼的標(biāo)準(zhǔn)。然后把取出的整數(shù)部分按順序排列起來(lái),先取的整數(shù)作為二進(jìn)制小數(shù)的高位有效位,后取的整數(shù)作為低位有效位。 浮點(diǎn)運(yùn)算JavaScript 本文主要討論JavaScript的浮點(diǎn)運(yùn)算,主要包括 JavaScript number基本類(lèi)型 二進(jìn)制表示十進(jìn)制 浮點(diǎn)數(shù)的精度 number 數(shù)字類(lèi)型 在JavaScript中,數(shù)字只有numb...

    iflove 評(píng)論0 收藏0
  • Java基礎(chǔ)語(yǔ)法知識(shí)你真的都會(huì)嗎?

    摘要:而所有的數(shù)據(jù)運(yùn)算都是采用補(bǔ)碼進(jìn)行的。補(bǔ)碼解決負(fù)數(shù)加法運(yùn)算正負(fù)零問(wèn)題,彌補(bǔ)了反碼的不足。通過(guò)使用訪問(wèn)修飾符可以使實(shí)例變量對(duì)子類(lèi)可見(jiàn)暫時(shí)在學(xué)習(xí)基礎(chǔ)語(yǔ)法知識(shí)的時(shí)候可以暫時(shí)忽略實(shí)例變量這部分內(nèi)容,這部分內(nèi)容主要被使用在面向?qū)ο蟮牟糠?,但是極其重要。 showImg(https://segmentfault.com/img/remote/1460000019264541?w=600&h=242)...

    DirtyMind 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<