洛谷 P1601 A+B Problem(高精)
作者:互联网
菜鸟生成记(36)
这就是一个模板题(水)
#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