字符串实现大数相加

#include
#include
#include
#include
using namespace std;


char int2char(int x){
    stringstream s;
    s<     char res;
    s>>res;
    return res;
}


int main(){
    string str1,str2;
    while(cin>>str1>>str2){
        string str3;
        reverse(str1.begin(),str1.end());
        reverse(str2.begin(),str2.end());
        int longer=str1.length()>str2.length()?str1.length():str2.length();
        int shorter=longer==str1.length()?str2.length():str1.length();
        bool flag=false;
        for(int i=0;i             int temp=(str1[i]-'0')+(str2[i]-'0');
            if(flag){
                temp+=1;
            }
            if(temp>9){
                flag=true;
                str3.push_back(int2char(temp-10));
            }
            else{
                flag=false;
                str3.push_back(int2char(temp));
            }
        }
        int j=shorter;
        while(flag&&j             for(;j                 if(longer==str1.length()){
                    int temp=(str1[j]-'0')+flag;
                    if(temp>9){
                        flag=true;
                        str3.push_back(int2char(temp-10));
                    }
                    else{
                        flag=false;
                        str3.push_back(int2char(temp));
                    }
                } 
                else{
                    int temp=(str2[j]-'0')+flag;
                    if(temp>9){
                        flag=true;
                        str3.push_back(int2char(temp-10));
                    }
                    else{
                        flag=false;
                        str3.push_back(int2char(temp));
                    }                   
                }
            }            
        }
        if(j==longer&&flag==true){
            str3+='1';
        }
if(j         for(j;j              if(longer==str1.length()){
                 str3+=str1[j];
             }
            else{
                str3+=str2[j];
            }
        }
}
reverse(str3.begin(),str3.end());
        cout<     }
    return 0;
}

你可能感兴趣的:(数据结构与算法)