帮我写一段c++的高精度加法函数,输入值为两个字符串,返回值为字符串
时间: 2024-04-30 11:24:01 浏览: 9
好的,以下是高精度加法函数的代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1005
char* add(char* a, char* b) {
int len1 = strlen(a);
int len2 = strlen(b);
int len = len1 > len2 ? len1 : len2;
int ia[MAX_LEN], ib[MAX_LEN], c[MAX_LEN];
memset(ia, 0, sizeof(ia));
memset(ib, 0, sizeof(ib));
memset(c, 0, sizeof(c));
for (int i = 0; i < len1; i++)
ia[i] = a[len1 - i - 1] - '0';
for (int i = 0; i < len2; i++)
ib[i] = b[len2 - i - 1] - '0';
for (int i = 0; i < len; i++) {
c[i] += ia[i] + ib[i];
if (c[i] >= 10) {
c[i] -= 10;
c[i + 1]++;
}
}
if (c[len] == 1)
len++;
char* ret = (char*)malloc(sizeof(char) * (len + 1));
for (int i = 0; i < len; i++)
ret[i] = c[len - i - 1] + '0';
ret[len] = '\0';
return ret;
}
int main() {
char a[MAX_LEN], b[MAX_LEN];
scanf("%s%s", a, b);
printf("%s", add(a, b));
return 0;
}
```
输入两个字符串,即可得到它们的高精度加法结果。