5701 - mid2_Exercise2_大數加法   

Description

 

輸入由數字構成的兩個字串 (假設每個字串的長度不超過 100)
例如
1234567890987654321234567890987654321
9876543210123456789876543210123456789
 
輸出兩數相加的結果
11111111101111111111111111101111111110
 
基本做法是用陣列來表示很大的整數
先把資料當作字串來讀取
然後轉成整數陣列做計算
底下是部分的程式碼
請把 add() 的內容寫出來
讓它能達到題目所要的計算結果
 

#include  
#include  
#include  
#define END_INT 999
void string_to_int(char *str, int num[]);
void show_big_int(int *num);
void add(int num1[], int num2[], int num3[]);

int main(void)
{
    char str[100];
    int A[100] = {0, END_INT};
    int B[100] = {0, END_INT};
    int C[101] = {0, END_INT};
    FILE *fin;
    fin = fopen("big_int.txt", "r");
    if (fin == NULL) {
        perror("big_int.txt");
        exit(EXIT_FAILURE);
    }
    fscanf(fin, "%99s", str);
    string_to_int(str, A);
    fscanf(fin, "%99s", str);
    string_to_int(str, B);

    show_big_int(A);
    printf(" ");

    show_big_int(B);
    printf(" ");
    add(A, B, C);
    show_big_int(C);
    printf(" ");
        
    fclose(fin);
    return 0;
}

void string_to_int(char *str, int num[])
{
    int i;
    for (i=0; i 

 

Input

兩組由數字所構成且長度不超過100的字串

Output

相加後的結果

Sample Input  Download

Sample Output  Download

Tags




Discuss