亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C/C++ 超長正整數相加

發布時間:2020-07-27 22:07:21 來源:網絡 閱讀:334 作者:sonissa 欄目:編程語言

本題整體思想不難,主要是想好用什么容器去存儲計算值和計算結果值,這里用的是字符串,當然也可以用數組,題目鏈接:https://www.nowcoder.com/practice/5821836e0ec140c1aa29510fd05f45fc?tpId

以下為解答代碼(具體細節看注釋):

string AddLongInteger(string addend, string augend){
    int i = 0,n=addend.size()>augend.size()?n=addend.size():n=augend.size();  //n為較長計算值的長度,用來循環計算時使用
    string c;              //計算結果保存的值
    int  temp, tep = 0;         //進位值要記得初始化
    reverse(addend.begin(), addend.end());         //這里將兩個加數都翻轉過來計算,主要是為了寫入結果的時候可以直接使用‘+=’
    reverse(augend.begin(), augend.end());         //當然也可以沒有這一步,直接從后往前算
    for (; i < n; i++){
        int a = i<addend.size() ? addend[i] - '0' : 0;         //若是一個加數已經全部計算完成,在接下來就用0代替來計算
        int b = i<augend.size() ? augend[i] - '0' : 0;
        temp = (a+b+tep)% 10;           //計算結果值(要填入結果的值)
        tep = (a + b + tep) / 10;   //進位值
        c += temp + 48;  // 填入結果
    }
    if (tep>0){    //若是最后一位計算有進位值,則直接填入結果
        c += tep+'0';
    }
    reverse(c.begin(), c.end());   //將計算結果反過來就是正確結果
    return c;
}

int main(){
    string a, b, c;
    while (cin >> a >> b){
        cout << AddLongInteger(a, b) << endl;
    }
    return 0;
}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

达尔| 那曲县| 德令哈市| 成安县| 高州市| 股票| 东海县| 磐安县| 罗甸县| 福清市| 安康市| 文水县| 富阳市| 紫金县| 泸州市| 武胜县| 赤水市| 当阳市| 鄯善县| 祁连县| 衡阳市| 望江县| 革吉县| 廊坊市| 攀枝花市| 玉门市| 柘荣县| 舟山市| 青阳县| 界首市| 广宁县| 石狮市| 汤原县| 锦州市| 鲁山县| 衡南县| 焦作市| 宁津县| 珠海市| 麻阳| 沂南县|