中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

C++實現兩個超大的字符數字相加的算法的代碼

發布時間:2020-07-12 11:32:17 來源:網絡 閱讀:705 作者:chinaman_U 欄目:編程語言

如下資料是關于C++實現兩個超大的字符數字相加的算法的代碼。

#include <iostream>
#include <string>
#include <stack>

using namespace std;
void deleteLeadingZeros(string& num){

    if(num[0] == '0'){
        unsigned int strtCpyIndex = 0;
        strtCpyIndex = num.find_first_not_of("0");
        string temp = num.substr(strtCpyIndex);
        num = temp;
    }
}
void equalizeLength(string& num1 , string& num2, char pad = '0'){

    if(num1.size() < num2.size()){
        unsigned int diff = num2.size() - num1.size();
        string temp;
            temp += pad;
        temp += num1;
        num1 = temp;
    }
    else if(num2.size() < num1.size()){
        unsigned int diff = num1.size() - num2.size();
        string temp;
            temp += pad;
        temp += num2;
        num2 = temp;
    }
}

string addLargeNumbers(string num1, string num2)
{   

    if(num1.empty())
        return num2;
    else if(num2.empty())
        return num1;

    stack<short> addResult; 
    string returnResult = "";   

    deleteLeadingZeros(num1);
    deleteLeadingZeros(num2);

    equalizeLength(num1,num2);

    int lastAddElem = num1.size()- 1;

    bool hasCarry = false;

    for(int i = lastAddElem; i >= 0; --i)
    {

        if(result < 10 && !hasCarry)
            addResult.push(result);
        else
        {           
            if(hasCarry){
                hasCarry = result < 10 ? false : true;
                addResult.push(result%10);
            }
            else
            {
                hasCarry = true;
                addResult.push(result % 10 );
            }
        }

    }
    if(hasCarry)
        addResult.push(result/10);

    while(addResult.size()){
        returnResult += (addResult.top() + '0');        
        addResult.pop();
    }

    return returnResult;
}

int main()
{       
    string num1,num2;
    while(true){
        cout<<"Enter 2 integer for addition : ";
        cin >> num1 >> num2;
        cout <<num1 << "+" << num2 <<" = "<<addLargeNumbers(num1,num2)<<endl;
    }

}
向AI問一下細節

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

AI

青河县| 成都市| 镇远县| 龙井市| 富顺县| 无棣县| 友谊县| 玛沁县| 绵竹市| 乐安县| 龙井市| 汉沽区| 上思县| 双城市| 光山县| 高邮市| 雅安市| 山阴县| 蚌埠市| 罗田县| 中江县| 沙坪坝区| 城步| 翼城县| 仙居县| 许昌县| 太康县| 苍山县| 罗山县| 启东市| 泗洪县| 彭阳县| 砚山县| 马山县| 莲花县| 安庆市| 苗栗市| 晋江市| 沙田区| 长岛县| 白玉县|