超大整数加法

来源:互联网 发布:下载excel办公软件 编辑:程序博客网 时间:2024/04/28 16:32
#include <stdio.h>#include <string.h>char* Add(char *big, char *small)//将位数较短的数加在较长的数上{if (strlen(big) < strlen(small)){char *temp = big;big = small;small = temp;}big[0] = small[0] = '0';int i = strlen(big)-1, j = strlen(small)-1, sum, k;for (i, j; i > 0 && j > 0; i--, j--)//模拟加法,从最后一位开始{sum = big[i]-'0' + small[j]-'0';k = i;while (sum > 9)//处理进位{big[k--] = sum%10 + '0';sum = big[k]-'0' + 1;}big[k] = sum + '0';}if (big[0] == '0'){return big + 1;}return big;}int main(){char a[1005], b[1005];int testNum, caseNum;scanf("%d", &testNum);for (caseNum = 1; caseNum <= testNum; caseNum++){scanf("%s %s", a+1, b+1);//从数组的第二位开始存放,第一位预留给进位printf("Case %d:\n%s + %s = ", caseNum, a+1, b+1);printf("%s\n", Add(a, b));if (caseNum != testNum){printf("\n");}}return 0;}


原创粉丝点击