一个关于高精度代码出错的问题
  • 板块学术版
  • 楼主clx201022
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/10/7 15:42
  • 上次更新2023/10/27 08:18:37
查看原帖
一个关于高精度代码出错的问题
552688
clx201022楼主2022/10/7 15:42

高精度代码如下:

#include<bits/stdc++.h>
using namespace std;
void swap(char &e1,char &e2)
{
	char t1;
	t1=e1;
	e1=e2;
	e2=t1;
}
string add(string a,string b)
{
	string c;
	c[0]='\0';
	int x=0,y=0;
	for(int i=0;i<=a.size()/2;i++)
	{
		swap(a[i],a[a.size()-i-1]);
	}
	for(int i=0;i<=b.size()/2;i++)
	{
		swap(b[i],b[b.size()-i-1]);
	}
	cout<<a<<' '<<b<<endl;
	for(int i=0;i<=max(a.size(),b.size());i++)
	{
		c[i]='0';
		y=0;
		if(a[i]>='0'&&a[i]<='9')
		{
			y+=a[i]-'0';
		}
		if(b[i]>='0'&&b[i]<='9')
		{
			y+=b[i]-'0';
		}
		c[i]=y%10+x+'0';
		x=y/10;
		cout<<c[i]<<endl;
	}
	while(c[c.size()]=='0')
	{
		c[c.size()]='\0';
	}
	for(int i=0;i<=c.size();i++)
	{
		cout<<c[i];
	}
	return c;
}
int main()
{
	string a,b;
	cin>>a>>b;
	cout<<add(a,b);
	return 0;
}

输入如下: 123 123 输出如下: 321 321 6 4 2 0 6

2022/10/7 15:42
加载中...