高精度代码求调
  • 板块学术版
  • 楼主clx201022
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/3/29 18:27
  • 上次更新2023/10/23 20:07:26
查看原帖
高精度代码求调
552688
clx201022楼主2023/3/29 18:27
string highadd(string a,string b)
{
	int lena=a.size(),lenb=b.size();
	int maxlen=max(lena,lenb);
	stack<char>h;
	for(int i=1,zzz1=0,x=0;i<=maxlen+1;i++)//加一是为了当最后一位进位时,再进一位 
	{
		if(lena-i>=0)
			zzz1+=(int)a[lena-i]-(int)'0';
		if(lenb-i>=0)
			zzz1+=(int)b[lenb-i]-(int)'0';
		//加上对应数
		zzz1+=x;
		//加上进位 
		h.push((char)((zzz1%10)+(int)'0'));
		//push进去 
		if(zzz1>=10)
			x=1;
		else
			x=0;
		//计算进位 
		zzz1=0;
	}
	string c;
	while(h.top()==0&&h.size()>1)
		h.pop();
	for(int i=0;i<h.size()&&(!h.empty());i++)
	{
		c[i]=h.top();
		h.pop();
	}
	return c;
}
2023/3/29 18:27
加载中...