题解 | #高精度整数加法#

高精度整数加法

http://www.nowcoder.com/practice/49e772ab08994a96980f9618892e55b6

//从后往前遍历,定义一个od变量代表进位

using namespace std;
int main(){
    string str1, str2;
    while(cin>> str1 >> str2){
        int n1 = str1.size(), n2 = str2.size(), od = 0;
        int i1 = n1 - 1, i2 = n2 - 1;
        int num;
        string ans;
        while(i1 >= 0 || i2 >= 0){
            if(i1 < 0){
                num = str2[i2] - '0' + od;
                i2 --;
            }else if(i2 < 0){
                num = str1[i1] - '0' + od;
                i1 --;
            }else{
                num = str2[i2] - '0' + str1[i1] - '0' + od;
                i2 --;
                i1 --;
            }
            od = num / 10;
            ans = to_string(num % 10) + ans;
        }
        if(od != 0){
            ans = to_string(od) + ans;
        }
        cout<< ans << endl;
    }
    return 0;
}
全部评论

相关推荐

10-11 17:45
门头沟学院 Java
走吗:别怕 我以前也是这么认为 虽然一面就挂 但是颇有收获!
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务