数据大于long long最大值,处理方法 子串加法运算

来源:互联网 发布:网络连接异常 编辑:程序博客网 时间:2024/06/02 04:09

采用字符串的方式来进行处理遇到两个数A+B大于数据类型 long long 的最大值时;

字符串的求和运算

转载请标注:http://blog.csdn.net/nbe999/article/details/77886999

参考代码如下:

#include "stdafx.h"#include <string>#include <iostream>#include <istream>using namespace std;int main(){    string a,b; cin >>a >> b;              //输入两个数 以字符形式存储    int n=a.size(),m=b.size();    int max=n>m?n:m;    int dif=0;//进位    int temp=0;    string resoult="";    int i=n-1;int j=m-1;    for(int k=0;k<max;++k)         {        if(i>=0 && j>=0)                     //m==n的情况         {            temp=(a[i]-'0')+(b[j]-'0')+dif;  //本位和            dif=temp/10;                     //进位123            resoult=char(temp%10+'0')+resoult;            --i;--j;        }        else if(i>j)                         //此时j==0; i>j        {            temp=(a[i]-'0')+dif;  //本位和            dif=temp/10;                     //进位            resoult=char(temp%10+'0')+resoult;            --i;        }        else                                 //此时i==0;j>i          {            temp=(b[j]-'0')+dif;             //本位和            dif=temp/10;                     //进位            resoult=char(temp%10+'0')+ resoult;            --j;        }    }    //最末还有一个进位    if(dif>0)resoult=char(dif+'0')+resoult;    cout << resoult<<endl;    return 0;}


阅读全文
1 0
原创粉丝点击