其他分享
首页 > 其他分享> > 洛谷 P1601 A+B Problem(高精)

洛谷 P1601 A+B Problem(高精)

作者:互联网

菜鸟生成记(36)

P1601 A+B Problem(高精)

这就是一个模板题(水)

#include<bits/stdc++.h>
using namespace std;
void sw(std::string s,int x[])//逆转+转化为数字数组 
{
	for(int i=0;i<s.length()/2;i++)//逆转 
	{
		swap(s[i],s[s.length()-1-i]);
	}
	for(int i=0;i<s.length();i++)//转化为数字数组 
	x[i]=s[i]-'0';
}
void fun(std::string a,std::string b)
{
	int x[600]={0},y[600]={0};
	int sum[600]={0};
	int len=0,t=0;
	sw(a,x);//逆转+转化为数字数组 
	sw(b,y);//逆转+转化为数字数组 
	len=max(a.length(),b.length());//取最长的数字长度 
	for(int i=0;i<len;i++)//大数相加 
	{
		t=t+x[i]+y[i];
		sum[i]=t%10;
		t/=10;
	}
	if(t!=0)//进位 
	sum[len]=t,len++;
	for(int i=len-1;i>=0;i--)//逆序输出 
	cout<<sum[i];
}
int main()
{
	string a,b;
	cin>>a>>b;
	fun(a,b);
	return 0;
}

标签:600,int,sum,sw,len,length,高精,P1601,Problem
来源: https://blog.csdn.net/Thy__father/article/details/115093101