基于C++的string类的大数相加的一种算法

#include

using namespace std;
string add(string s1,string s2)
{
   string max,min;
   max=s1;
   min=s2;
   if(max.size()=0;i--,j--)
      max[j]+=min[i]-'0';
   for(int i=La-1;i>=1;i--)
    if(max[i]>'9')
    {
    	max[i]-=10;
    	max[i-1]++;
    }
    if(max[0]>'9')
    {
    	max[0]-=10;
    	max='1'+max;
    }
    return max;
}

int main()
{	
  cout<


该算法分为三步:

一、将较大值和较小值从各位开始对齐相加

max[j]+=max[i]-'0';   //此时max[j]的值是两个和的assic值

二、从尾到头扫描,assci值大于'9'的进位

二、第一位进行特殊处理


你可能感兴趣的:(ICPC)