當前位置:編程學習大全網 - 編程語言 - 用c語言實現超長整數的加法運算

用c語言實現超長整數的加法運算

要實現超長整數的加法運算,可以使用字符串來存儲這些數,然後按位進行加法運算。下面是使用C語言實現超長整數加法的示例代碼:

c

#include <stdio.h>

#include <string.h>

#define MAX_LEN 100000

void reverse(char *str) {

int i, j;

char temp;

for (i = 0, j = strlen(str) - 1; i < j; i++, j--) {

temp = str[i];

str[i] = str[j];

str[j] = temp;

}

}

void add(char *num1, char *num2, char *result) {

int carry = 0;

int i = 0;

int len1 = strlen(num1);

int len2 = strlen(num2);

reverse(num1);

reverse(num2);

while (i < len1 || i < len2 || carry != 0) {

int n1 = (i < len1) ? (num1[i] - '0') : 0;

int n2 = (i < len2) ? (num2[i] - '0') : 0;

int sum = n1 + n2 + carry;

result[i] = (sum % 10) + '0';

carry = sum / 10;

i++;

}

result[i] = '\0';

reverse(result);

}

int main() {

char num1[MAX_LEN], num2[MAX_LEN], result[MAX_LEN];

printf("請輸入第壹個整數:");

scanf("%s", num1);

printf("請輸入第二個整數:");

scanf("%s", num2);

add(num1, num2, result);

printf("兩個整數的和為:%s\n", result);

return 0;

}

在上面的代碼中,reverse函數用於將壹個字符串反轉。add函數用於將兩個字符串表示的超長整數相加,結果存儲在result字符串中。在add函數中,我們首先將兩個字符串反轉,然後按位進行加法運算,將結果存儲在result字符串中。最後,我們將result字符串再次反轉,以得到正確的結果。

需要註意的是,在進行加法運算時,需要考慮到進位的情況。當兩個數的位數不同時,需要在較短的數前面補0,以便按位相加。

  • 上一篇:全球500強陶氏化學多次到訪,華人運通到底有著怎樣的吸引力?
  • 下一篇:計算機網絡信息安全技術中密碼技術的發展經歷了哪些階段?分別發生了哪些顯著的變化?
  • copyright 2024編程學習大全網