超长整数的加减运算 C语言,两个超长正整数的加法
时间: 2024-03-14 12:45:40 浏览: 129
超长整数的加减运算可以使用字符串来实现。以下是C语言中实现两个超长正整数的加法的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
int main() {
char num1[MAX_LEN], num2[MAX_LEN];
int len1, len2, carry = 0, sum[MAX_LEN];
scanf("%s %s", num1, num2);
len1 = strlen(num1);
len2 = strlen(num2);
for (int i = len1 - 1, j = len2 - 1, k = 0; i >= 0 || j >= 0 || carry; i--, j--, k++) {
int digit1 = i < 0 ? 0 : num1[i] - '0';
int digit2 = j < 0 ? 0 : num2[j] - '0';
sum[k] = digit1 + digit2 + carry;
carry = sum[k] / 10;
sum[k] %= 10;
}
for (int i = strlen(num1) + strlen(num2) - 1; i >= 0; i--) {
printf("%d", sum[i]);
}
return 0;
}
```
以上代码中,我们首先定义了两个字符数组 `num1` 和 `num2` 来存储输入的超长正整数。然后使用 `strlen` 函数获取两个超长正整数的长度。接着使用循环来计算两个超长正整数的和。在循环中,我们从右往左遍历两个超长正整数的每一位,并且用变量 `carry` 来表示进位。最后,我们再次从右往左遍历 `sum` 数组,并输出每一位的值。
阅读全文