编程实现任意长度整数的加法(整数可以长度超出C++中int范围)

#include <iostream>

#include<string>

using namespace std;

string add(string s1,string s2)

{

    string s0;

    int c=0;

	if(s1.size()<s2.size())

	{

		string ss;

		ss=s1;

		s1=s2;

		s2=ss;

	}

	int len1=s1.size()-1,len2=s2.size()-1;

	while(len1>=0)

	{

		char m;

		if(len2>=0)

		{

			int a=(s1[len1]-48)+(s2[len2]-48)+c;

			c=a/10;

			a=a%10;

			m=a+48;

			s0.insert(0,m);

			len1--;

			len2--;

		}

		else

		{

			int b=s1[len1]-48+c;

			c=b/10;

			b=b%10;

			m=b+48;

			s0.insert(0,m);

			len1--;

		}

	}



	if(c!=0)

	{

		s0.insert(0,c+48);

	}



	return s0;

}





int main()

{

    string s1,s2;   

    cin>>s1>>s2;

    string s0=add(s1,s2);

	cout<<s0<<endl;

    return 0;

}

  效率可能不是很高

你可能感兴趣的:(C++)