高精度运算 -C语言

作者: 殁月 | 来源:发表于2020-05-25 14:33 被阅读0次

    如何进行大整数加法?

    需要用到数组,模拟竖式运算。

    一般而言,拿数组零号元素存最低位,因为如果存最高位的话,需要考虑进位问题,要为进位预留空间。

    这里以** 1234567890+9987654321 **为例

    int main()
    {
        int a[10] ={0,9,8,7,6,5,4,3,2,1};
        int b[10] ={1,2,3,4,5,6,7,8,9,9};
        //求和存放的数组,因为可能有进位 ,多给他一位空间 
        int sum[11] = {0};
         //标志进位
        int carry = 0; 
    //  循环计算从最低位到最高位的值(假如最高位无进位) 
        for (int i = 0 ; i < 10 ; i ++){
            int s;
            s = a[i]+b[i] + carry; 
            carry = s/10; 
            sum[i] = s%10;
        }
    //  如果有进位 手动给进位赋值 
        sum[10] = carry;
        for(int i = 10 ;i >=0 ; i--){
            printf("%d",sum[i]);
        }
    
            
        }
    

    相关文章

      网友评论

        本文标题:高精度运算 -C语言

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