当前位置: 代码迷 >> 综合 >> HUSTOJ 1113: 高精度加法之一
  详细解决方案

HUSTOJ 1113: 高精度加法之一

热度:70   发布时间:2023-11-25 14:26:55.0

1113: 高精度加法之一

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 499   Solved: 168
[Submit][Status][Web Board]

Description

计算a+b的值,a,b 皆不超过300位。

Input

两个数 每行一个

Output

一个数

Sample Input

12
23

Sample Output

35
AC代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
const int N = 1000 + 10;
char s[N], s1[N], e[N], e1[N];
int main(){int len, len1, maxL, k;scanf("%s%s", s, s1);len = strlen(s);len1 = strlen(s1);memset(e, 0, sizeof(e));memset(e1, 0, sizeof(e1));k = 1;//把字符串反转,再变为数字 for(int i = len - 1; i >= 0; i--){e[k] = s[i] - '0';k++;}k = 1;for(int i = len1 - 1; i >= 0; i--){e1[k] = s1[i] - '0';k++;} maxL = max(len, len1);for(int i = 1; i <= maxL; i++){e[i] += e1[i];if(e[i] >= 10){e[i + 1] += e[i] / 10;e[i] %= 10;} }bool flag = true;for(int i = N; i >= 1; i--){if(e[i] != 0){flag = false;}if(!flag){printf("%d", e[i]);}}return 0;
}