大整数加法

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;
}

 

以上是关于大整数加法的主要内容,如果未能解决你的问题,请参考以下文章

大整数加法 HDU1002

HDU - 1002 A + B Problem II (大整数加法)

大整数加法和大整数乘法

1151: 大整数加法(正数)

PHP 大数字加法 大整数加法

大整数加法