欧拉计划13之大数加法


代码演示

#include <stdio.h>
#include <string.h>


char num1[102][1002];
int n1[102][1002];
int ans[1002];

int main() {
    FILE *fp = freopen("E:/c语言代码/文件数据/欧拉计划input13.txt", "r", stdin);
    for (int ii = 1; ii <= 100; ii++) {
        fscanf(fp, "%s", num1[ii]);
        //printf("%s\n", num1[ii]);

        int n1_size = strlen(num1[ii]);
        n1[ii][0] = n1_size;
        for (int i = 0, j = n1_size; num1[ii][i] && j > 0; i++, j--) { //倒序存储 
            n1[ii][j] = num1[ii][i] - '0';
        }

    
        ans[0] = n1_size > ans[0] ? n1_size : ans[0];
    
        for (int i = 1; i <= ans[0]; i++) { //加法处理 
            ans[i] += n1[ii][i];
        }
    
        for (int i = 1; i <= ans[0]; i++) { //进位处理 
            if (ans[i] > 9) {
                ++ans[i + 1];
                ans[i] -= 10;
            }
        }
        if (ans[ans[0] + 1]) ++ans[0];    
    }
    
    fp = freopen("E:/c语言代码/文件数据/欧拉计划output13.txt", "w", stdout);
    for (int i = ans[0]; i; i--) { //答案倒序输出 
        fprintf(fp, "%d", ans[i]);
    }
    printf("\n");
    return 0;
}

答案

5537376230390876637302048746832985971773659831892672

文章作者: Axieyun
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Axieyun !
评论
评论
  目录