#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
char a[201], b[201];
int i, j, k, m, n;
scanf("%s", a);
scanf("%s", b);
m = strlen(a);
k = n = strlen(b);
if (m > k) k = m;
a[k+1] = 0;
for (i = 0; i < k; i++) a[k-i] = a[m-i-1]; //使数组a的字符串以a[k]右对齐
for (i = 0; i <= k-m; i++) a[i] = '0'; //使数组a的高位补0
for (i = 0; i < k; i++) b[k-i] = b[n-i-1]; //使数组b的字符串以b[k]右对齐
for (i = 0; i <= k-n; i++) b[i] = '0'; //使数组b的高位补0
j = 0;
for (i = 0; i < k; i++)
{
j = (a[k-i] + b[k-i] + j - 96); //数字字符转换为整型数据相加
a[k-i] = j%10+48;
j = j/10; //取出相加的商,作为进位数
}
if (a[0] == '0')
printf("%s\n", a+1);
else
printf("%s\n", a);
return 0;
}
大数相加
最新推荐文章于 2023-11-17 17:26:26 发布