【hpuoj】大数A+B
2016-12-24 08:41
127 查看
1163: 大数A + B [字符串]
时间限制: 1 Sec 内存限制: 128 MB提交: 42 解决: 12
[提交][状态][讨论版]
题目描述
给定两个整数AA和BB,让你求出A+BA+B的值。
输入
第一行输入一个整数TT,代表有TT组测试数据。每组数据占两行,第一行输入一个整数AA,第二行输入一个整数BB。
注:1<=T<=30,1<=A,B<=106666661<=T<=30,1<=A,B<=10666666。
输出
对每组数据,输出A+BA+B的最后结果。
样例输入
1 233333333333333333333333333333333333333 666666666666666666666666666666666666666
样例输出
899999999999999999999999999999999999999
来源
CZY题目链接
入门的一道大数。
#include<stdio.h> #include<string.h> int max(int x,int y){ int t; t=(x>y)?x:y; return t; } char a[666666 + 10], b[666666 + 10]; int A[666666 + 10], B[666666 + 10], C[666666 + 10]; int main() { int la, lb; int lena, lenb; int i, j, len; int T; scanf("%d", &T); while(T--) { memset(&A,0,sizeof(A)); memset(&B,0,sizeof(B)); memset(&C,0,sizeof(C)); scanf("%s%s", a, b); la = strlen(a); lb = strlen(b); lena = 0; for(i = la - 1; i >= 0; i--) { A[lena++] = a[i] - '0'; } lenb = 0; for(i = lb - 1; i >= 0; i--) { B[lenb++] = b[i] - '0'; } for(i = 0; i < max(lena, lenb) + 1; i++) { C[i] = A[i] + B[i] + C[i]; if(C[i] >= 10) { C[i] -= 10; C[i + 1]++; } } for(i = max(lena, lenb) + 1; i >= 0; i--) { if(C[i] != 0) { break; } } for(; i >= 0; i--) { printf("%d", C[i]); } printf("\n"); } return 0; }
相关文章推荐
- HPUOJ1163: 大数A + B [字符串](水)
- hdu 1130 How Many Trees?(卡特兰数,大数的乘法与除法)
- 大数相乘之求N!
- (POJ2635)The Embarrassed Cryptographer(大数取模)
- zoj 1292 Integer Inquiry【大数】
- BZOJ 1005: [HNOI2008]明明的烦恼 Purfer序列 大数
- hdoj 1042 N! 【大数阶乘】
- HDU 5429-Geometric Progression(JAVA大数判断等比数列)
- OJ刷题--3.2.1 Factorials 阶乘(大数的存贮问题)
- 算法基础: 大数除法-二分法
- java 大数
- 实数gcd,大数快速乘与组合数取模
- HDOJ1002 A + B Problem II(大数)
- HDU 1250 Hat's Fibonacci(大数相加)
- 大数转为二进制的栈的应用
- 新浪笔试:大数相乘.
- 九度OJ 1129:Skew数 (大数运算)
- hdoj1042(N!,大数乘)
- Java 大数A+B
- 单链表实现大数加法、大数减法、大数乘法、大数指数运算