美文网首页
C语言数组实现高精度(长位数)加法

C语言数组实现高精度(长位数)加法

作者: David_Rao | 来源:发表于2019-12-20 11:16 被阅读0次
    计算高精度加法
    
    Description
    由键盘输入两个位数很长的整数(一行一个,最多不超过80位),试计算并输出这两个数的和。
    
    
    
    输入样例
    1234567890123456789353534532453453453434534
    987654321098765324534534534534532
    
    
    输出样例
    1234567891111111110452299856987987987969066
    
    
    提示
    注意,一个普通的变量不能保存十多位长的整数
    
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define N 81
    
    int main()
    {
        char s[N];
        int a[N]={0}, b[N]={0}, result[N]={0};
        int i, aLen, bLen, longer, resultLen, temp;
        gets(s); aLen = strlen(s); for(i=0;i<aLen;i++) a[i] = s[aLen-1-i]-'0';
        gets(s); bLen = strlen(s); for(i=0;i<bLen;i++) b[i] = s[bLen-1-i]-'0';
        longer = (aLen>bLen ? aLen : bLen);
        for(i=0;i<longer;i++){
            result[i] += (a[i] + b[i]) % 10;
            result[i+1] += (a[i] + b[i]) / 10;
        }
        resultLen = result[longer]==0 ? longer : longer+1;
        for(i=0;i<resultLen/2;i++){
            temp = result[i];  result[i] = result[resultLen-1-i]; result[resultLen-1-i] = temp;
        }
        for(i=0;i<resultLen;i++) printf("%d", result[i]);
        return 0;
    }
    
    

    相关文章

      网友评论

          本文标题:C语言数组实现高精度(长位数)加法

          本文链接:https://www.haomeiwen.com/subject/isibnctx.html