ICPC--1151: 大整数加法

ICPC--1151: 大整数加法题目描述比利经常会碰到超大整数的加法运算 , 而普通的计算器上无法进行 。 因此他想你帮他写一个程序来计算结果 。
输入输入数据有多组 。 首先输入一个整数T , 表示有T组输入 。
每组输入两个大整数 , 并用空格隔开 。 每个整数最多1000位 。 没有负数输入 。
输出对于每组输入 , 输出两个整数的和 , 单独占一行 。
样例输入21 2112233445566778899 998877665544332211样例输出31111111111111111110代码【ICPC--1151: 大整数加法】#include#includeint main(){char str1[1000], str2[1000];int strs1[1000], strs2[1000], strs[1000], b1, b2, i, n = 0, t;scanf_s("%d",while (t--){n = 0;//用来计算大于10时进一memset(strs1, 0, sizeof(strs1));//初始化memset(strs2, 0, sizeof(strs2));memset(strs, 0, sizeof(strs));scanf_s("%s%s", str1, str2);b1 = strlen(str1);//字符串长度b2 = strlen(str2);if (b1 > b2){n = b1 - b2;for (i = 0; i < b1; i++){strs1[i] = str1[i] - '0';if (i < b2)//在str2长度范围内{strs2[i + n] = str2[i] - '0';//挪位 相当于补0}}}else{n = b2 - b1;for (i = 0; i < b2; i++){strs2[i] = str2[i] - '0';if (i < b1){strs1[i + n] = str1[i] - '0';}}}if (b1 < b2)//交换 , 使b1>b2{n = b1;b1 = b2;b2 = n;}n = 0;//归零for (i = b1 - 1; i >= 0; i--){strs[i] = strs1[i] + strs2[i] + n;n = 0;if (i > 0){if (strs[i] >= 10){strs[i] = strs[i] % 10;//求余n = 1;//进1}}}for (i = 0; i < b1; i++)printf("%d", strs[i]);printf("\n");}return 0;}


    推荐阅读