终于会写一个简单的高精了

a+b的高精

#include<bits/stdc++.h>
using namespace std;
string a,b;
string jia(string a,string b)
{
	string ans;
	int len1=a.length();
	int len2=b.length();
	if(len1>len2)
	{
		for(int i=0;i<len1-len2;i++)
		{
			b="0"+b;//补零 
		}
	}
	else
	{
		for(int i=0;i<len2-len1;i++)
		{
			a="0"+a;//补零 
		}
	}
	int len=a.length();
	string c;
	int tmp;
	int jinwei=0;
	for(int i=len-1;i>=0;i--)//从低位到高位 
	{
		tmp=a[i]+b[i]-'0'-'0'+jinwei;
		jinwei=tmp/10;//进位 
		tmp%=10;
		c=char(tmp+'0')+c;
	}
	if(jinwei!=0)  c=char(jinwei+'0')+c;//处理第一位 
	c.erase(0,c.find_first_not_of('0'));//删除前导零
	return c;
}
int main()
{
	cin>>a>>b;
	if(jia(a,b).length()==0)
	{
		cout<<"0"<<endl;
	}
	cout<<jia(a,b)<<endl;
	
}

猜你喜欢

转载自blog.csdn.net/balalalalalalala/article/details/81386556