c语言实现大整数加法
时间: 2023-11-25 13:07:08 浏览: 139
大整数加法C语言程序
4星 · 用户满意度95%
C语言实现大整数加法的基本思路是将大整数转换为数组或字符串,然后按位进行加法运算,最后再将结果转换为大整数形式输出。下面是一个简单的C语言实现大整数加法的代码示例:
```
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
void reverse(char *str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
char *bigIntAdd(char *a, char *b) {
char *result = (char *)malloc(sizeof(char) * (MAX_LEN + 1));
memset(result, '0', MAX_LEN + 1);
int lenA = strlen(a), lenB = strlen(b);
reverse(a);
reverse(b);
for (int i = 0; i < MAX_LEN; i++) {
if (i < lenA) {
result[i] += a[i] - '0';
}
if (i < lenB) {
result[i] += b[i] - '0';
}
if (result[i] > '9') {
result[i] -= 10;
result[i + 1]++;
}
}
reverse(result);
while (*result == '0' && *(result + 1) != '\0') {
result++;
}
return result;
}
int main() {
char a[MAX_LEN], b[MAX_LEN];
scanf("%s%s", a, b);
char *result = bigIntAdd(a, b);
printf("%s\n", result);
return 0;
}
```
该代码中,我们定义了一个`bigIntAdd`函数,该函数接受两个字符串类型的大整数,返回它们的和。在函数内部,我们首先将两个大整数字符串翻转,然后按位进行加法运算,并将结果存储在一个新的字符串中。最后,我们再将结果字符串翻转回来,并去除前导零,最终返回结果。
阅读全文