大整数加法
Posted lazy-cat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大整数加法相关的知识,希望对你有一定的参考价值。
写程序求两个相同位数的大整数之和
输入
两个大整数(位数不超过1000)
输出
两个大整数的和
样例输入
1234567890 1234567890 111111111111 222222222222
样例输出
2469135780 333333333333
#include <stdio.h> #include <string.h> char add(char a, int &tag){ int r = a-‘0‘+tag; if (r <= 9){ tag = 0; return r+‘0‘; } else{ tag = 1; return r+38; } } char add(char a, char b, int &tag){ int r = a+b-96+tag; if (r <= 9){ tag = 0; return r+‘0‘; } else{ tag = 1; return r+38; } } int add(char sum[], char a[], char b[]){ int i = strlen(a)-1, j = strlen(b)-1, k = 0, tag = 0; while (i>=0 && j>=0){ sum[k++] = add(a[i--], b[j--], tag); } while (i >= 0){ sum[k++] = add(a[i--], tag); } while (j >= 0){ sum[k++] = add(b[j--], tag); } if (tag != 0){ sum[k++] = tag+‘0‘; } return k; } int main(){ char a[1001], b[1001], sum[1002]; int i, k; while (scanf("%s %s", a, b) == 2){ k = add(sum, a, b); for (i=k-1; i>=0; --i){ printf("%c", sum[i]); } printf(" "); } return 0; }
以上是关于大整数加法的主要内容,如果未能解决你的问题,请参考以下文章