實現高精度加法可以通過將兩個大整數分別存儲在數組中,然后從低位到高位逐位相加,并考慮進位的情況來實現。以下是一個簡單的C語言實現高精度加法的示例代碼:
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
void add(char num1[], char num2[], char result[]) {
int len1 = strlen(num1);
int len2 = strlen(num2);
int i = len1 - 1;
int j = len2 - 1;
int carry = 0;
int k = 0;
while (i >= 0 || j >= 0) {
int sum = carry;
if (i >= 0) {
sum += num1[i] - '0';
i--;
}
if (j >= 0) {
sum += num2[j] - '0';
j--;
}
result[k] = (sum % 10) + '0';
carry = sum / 10;
k++;
}
if (carry) {
result[k] = carry + '0';
k++;
}
result[k] = '\0';
// Reverse the result
int start = 0;
int end = k - 1;
while (start < end) {
char temp = result[start];
result[start] = result[end];
result[end] = temp;
start++;
end--;
}
}
int main() {
char num1[MAX_LEN], num2[MAX_LEN], result[MAX_LEN];
printf("Enter the first number: ");
scanf("%s", num1);
printf("Enter the second number: ");
scanf("%s", num2);
add(num1, num2, result);
printf("The sum is: %s\n", result);
return 0;
}
在這個示例代碼中,我們首先輸入兩個大整數,然后調用add函數進行高精度加法運算,最后輸出結果。您可以根據需要修改數組長度和輸入輸出格式。