我又来水了
- 基本介绍
- 模板题目
- 代码实现
基本介绍
面对很大的数据进行加法 longlong会爆 我们用数组存储每一位来模拟加法
模板题目
题目描述
高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b]
输入输出格式
输入格式:
分两行输入a,b<=10^500
输出格式:
输出只有一行,代表A+B的值
输入输出样例
输入样例:
1
1
输出样例:
2
代码实现
#include<iostream>
#include<cstdio>
#include<cctype>
#include<cstring>
#include<string>
using namespace std;
#define in = read();
typedef long long ll;
typedef unsigned int ui;
const ll size = 10000 + 100;
string x , y;
int lena , lenb , h , num;
int a[size] , b[size];
inline ll read(){
ll num = 0 , f = 1; char ch = getchar();
while(!isdigit(ch)){
if(ch == '-') f = -1;
ch = getchar();
}
while(isdigit(ch)){
num = num*10 + ch - '0';
ch = getchar();
}
return num*f;
}
int main(){
cin>>x>>y;
lena = x.size(); lenb = y.size();
for(register int i=0;i<lena;i++)
a[i] = x[lena - i - 1] - '0';
for(register int i=0;i<lenb;i++)
b[i] = y[lenb - i - 1] - '0';
while(h <= lena || h <= lenb){
b[h] += a[h] + num;
num = b[h]/10;
b[h] %= 10;
h ++;
}
b[h] = num;
while(!b[h] && h) h --;
for(register int i=h;i>=0;i--)
printf("%d" , b[i]);
}
//COYG