大数相加
2016-07-20 18:05
393 查看
# include <stdio.h> # include <string.h> # define MAX 1005 int main(void) { int n; int num = 1; scanf("%d", &n); while (n--) { char ch1[MAX]; char ch2[MAX]; int num1[MAX] = {0}; //两个整型数组元素都要初始化为零 int num2[MAX] = {0}; scanf("%s %s", ch1, ch2); int len1 = strlen(ch1); int len2 = strlen(ch2); int i, j; for (i = len1 - 1, j = 0; i >= 0; i--) //注意: 字符转数字 要进行颠倒 { num1[j++] = ch1[i] - '0'; } for (i = len2 - 1, j = 0; i >= 0; i--) { num2[j++] = ch2[i] - '0'; } /* //第一种方法 for (i = 0; i < MAX; i++) { num1[i] = num1[i] + num2[i]; if (num1[i] > 9) { num1[i] -= 10; num1[i+1]++; } } */ //第二种方法 int c = 0; int sum; int result[MAX] = {0}; for(i = 0; i < MAX; i++) { sum = num1[i] + num2[i] + c; result[i] = sum % 10; c = sum / 10; } printf("Case %d:\n", num); num++; printf("%s + %s = ", ch1, ch2); for (i = MAX - 1; i >= 0; i--) { if (result[i] != 0) { break; } } for (; i >= 0; i--) { printf("%d", result[i]); } printf("\n"); } return 0; }
相关文章推荐
- hdu 1250 大数相加并用数组储存
- c语言大数相加
- 高精度加法——杭电1002
- 大数相加
- 大数加法A+B
- 数据结构Java实现——①栈-->栈的应用一、大数相加
- 【算法拾遗】大数相加(不开辟额外空间)
- 面试常见题目:大数相加的Java实现(考虑负数情况)
- 大数相加
- C语言两个以字符串形式出现的超级大数相加
- 大数相加 面试题
- HDU 1002(大数相加)
- Poj 2602 Superlong sums(大数相加)
- uva-424-大数相加
- 无限大的两个整数相加
- 剑指offer之面试题12 大数相加 实现任意两个整数的加法
- codewars打怪升级日记 用JavaScript实现大数相加 /像数字一样加数字型字符串
- C++实现两个大整数相加
- NYOJ 103.大数A+B(大数问题)
- 大数相加和大数相乘