P1601 A+B Problem(高精)

来源:互联网 发布:递归算法理解 编辑:程序博客网 时间:2024/05/23 19:41

高精度加法。

太久没写了,竟以为=也需要重载,然而相同的两个数据类型,等于号是不需要重载的。

令外写错了两个地方。//

#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int MAXN = 1000;inline int get(){char c;while((c = getchar()) < '0' || c > '9');int cnt = c - '0';while((c = getchar()) >= '0' && c <= '9') cnt = cnt * 10 + c - '0';return cnt;}char s1[MAXN],s2[MAXN];struct data{int a[MAXN],len;data(){memset(a,0,sizeof(a));} data operator + (const data& b){data c;c.len = max(len,b.len);for(int i = 1; i <= c.len; i++){ //len -> c.lenc.a[i] += a[i] + b.a[i]; // c.a[i] = a[i] + b.a[i]if(c.a[i] >= 10){c.a[i] -= 10;c.a[i+1]++;}}if(c.a[c.len+1] != 0) c.len++;return c;}}a,b;int main(){/*#ifdef lwy#elsefreopen(".in","r",stdin);freopen(".out","w",stdout);#endif*/scanf("%s %s",s1,s2);a.len = strlen(s1);b.len = strlen(s2);for(int i = a.len - 1; i >= 0; i--){a.a[a.len - i] = s1[i] - '0';}for(int i = b.len - 1; i >= 0; i--){b.a[b.len - i] = s2[i] - '0';}a = a + b;for(int i = a.len; i >= 1; i--){printf("%d",a.a[i]);}return 0;}

原创粉丝点击