本題整體思想不難,主要是想好用什么容器去存儲(chǔ)計(jì)算值和計(jì)算結(jié)果值,這里用的是字符串,當(dāng)然也可以用數(shù)組,題目鏈接:https://www.nowcoder.com/practice/5821836e0ec140c1aa29510fd05f45fc?tpId
成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),寧都網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:寧都等地區(qū)。寧都做網(wǎng)站價(jià)格咨詢:18982081108
以下為解答代碼(具體細(xì)節(jié)看注釋):
string AddLongInteger(string addend, string augend){
int i = 0,n=addend.size()>augend.size()?n=addend.size():n=augend.size(); //n為較長(zhǎng)計(jì)算值的長(zhǎng)度,用來循環(huán)計(jì)算時(shí)使用
string c; //計(jì)算結(jié)果保存的值
int temp, tep = 0; //進(jìn)位值要記得初始化
reverse(addend.begin(), addend.end()); //這里將兩個(gè)加數(shù)都翻轉(zhuǎn)過來計(jì)算,主要是為了寫入結(jié)果的時(shí)候可以直接使用‘+=’
reverse(augend.begin(), augend.end()); //當(dāng)然也可以沒有這一步,直接從后往前算
for (; i < n; i++){
int a = i<addend.size() ? addend[i] - '0' : 0; //若是一個(gè)加數(shù)已經(jīng)全部計(jì)算完成,在接下來就用0代替來計(jì)算
int b = i<augend.size() ? augend[i] - '0' : 0;
temp = (a+b+tep)% 10; //計(jì)算結(jié)果值(要填入結(jié)果的值)
tep = (a + b + tep) / 10; //進(jìn)位值
c += temp + 48; // 填入結(jié)果
}
if (tep>0){ //若是最后一位計(jì)算有進(jìn)位值,則直接填入結(jié)果
c += tep+'0';
}
reverse(c.begin(), c.end()); //將計(jì)算結(jié)果反過來就是正確結(jié)果
return c;
}
int main(){
string a, b, c;
while (cin >> a >> b){
cout << AddLongInteger(a, b) << endl;
}
return 0;
}
當(dāng)前標(biāo)題:C/C++超長(zhǎng)正整數(shù)相加
網(wǎng)頁URL:http://www.rwnh.cn/article14/gpocge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、靜態(tài)網(wǎng)站、定制網(wǎng)站、全網(wǎng)營(yíng)銷推廣、軟件開發(fā)、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)