A+B有关问题II
A+B问题II
A+B Problem II
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
-
计算两个数的和!(要求能计算1000位以内的数的和)
- 样例输入
-
112233445566778899 998877665544332211
- 样例输出
-
1111111111111111110
简单说:就是大数相加!
代码:
/* *问题描述:A+B 问题 *运行环境:Dev-C++ 4.9.9.2 *作者: 牟尼 *日期: 2014/3/17 */ #include <cstdio> #include <cstring> #include <iostream> using namespace std; #define MAX 1005 int a[MAX],b[MAX]; int main() { char s1[MAX],s2[MAX]; int res[MAX]; int i,j,len1,len2; scanf("%s%s",s1,s2); len1 = strlen(s1); len2 = strlen(s2); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(res,0,sizeof(res)); for(i = len1-1,j = 0; i >= 0; --i) //存入整型数组 a[j++] = s1[i] - '0'; for(i = len2-1,j = 0; i >= 0; --i) b[j++] = s2[i] - '0'; int t = 0; int len = len1 > len2?len1:len2; for(i = 0; i < len; ++i) //累加求和 { res[i] = t+a[i]+b[i]; t = res[i]/10; res[i] %= 10; } len = len + 2; while(len > 0 && res[len] == 0) //确定和的长度 len--; for(i = len; i >= 0; --i) { printf("%d",res[i]); } // system("PAUSE"); return 0; }