C++模板:高精度加法
#include<bits/stdc++.h>
using namespace std;
const int dight=10000;
string a,b;
int x[dight+10],y[dight+10],s[dight+10];
int main()
{
int la,lb;
cin>>a>>b;
la=a.size();
lb=b.size();
if(a[0]=='0' && b[0]=='0' && la==1 && lb==1)
{
cout<<0;
return 0;
}
for(int i=0;i<la;i++)x[i]=a[la-1-i]-48;
for(int i=0;i<lb;i++)y[i]=b[lb-1-i]-48;
int t;//进位
for(int i=0;i<dight;i++)
{
t=x[i]+y[i]+s[i];
if(t>=10)
{
s[i+1]++;
s[i]=t-10;
}
else s[i]=t;
}
int num;//存储什么时候没有前导0
for(int i=dight;i>=0;i--)
if(s[i]!=0)
{
break;
num=i;
}
for(int i=num;i>=0;i--)cout<<s[i];
cout<<endl;
return 0;
}
人生就像动态规划,你的一个又一个阶段是由上天安排的。而你,决定的是在这一阶段可以由上一阶段的哪些状态转移而来。越勤奋,越幸运,并不代表这一次你决策的方向有多么优秀。却代表着现在的这一个状态能够续写多少可能的结果。人生就像复杂的无向图,我们虽然不能找到最短路,但是我们能不断搜索。TLE之前,没有一个节点叫失败。