美文网首页
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语言数组实现高精度(长位数)加法

  • 高精度加法(C++实现)

    高精度加法 简介 用于计算含有超过一般变量存放不下的非负整数 高精度加法这个过程是模拟的小学竖式加法计算 步骤 以...

  • HDU-1753

    这个事实上就是高精度加法的模板题。所谓高精度加法,就是在数字过大的情况下,将数字看做是数组,数组中每个值只存一位。...

  • 17-12-8版子

    高精度加法 高精度乘法 快速乘法 二分匹配 阶乘长度(Stirling公式) 并查集 树状数组 树状数组的逆序数 ...

  • 高精度(加法&乘法&减法)

    高精度加法: 高精度乘法: 高精度减法:

  • C语言中的指针与数组

    C语言中的指针与数组 @(C语言)[排序算法, 快速排序, C实现] 引言 相信指针与数组是不少同学在初学C语言时...

  • C语言实现顺序存储结构(数组)

    C语言实现顺序存储结构(数组)

  • 高精度算法

    四种类型高精度算法[仅对C++而言] 1.A+B:两个大整数(A和B的位数为10^6)相加 a.利用数组存储大整数...

  • 2018-03-16

    JAVA - 长数据运算 使用数组实现长数据加法、乘法的简单模拟 使用数组,模拟类似竖式运算的模式,逐位进行运算与...

  • 第4周:链表——4.1 可变数组

    1.可变数组 C 语言数组大小固定,无法改变。 考虑用 C 语言实现一个可以变大小的 int 数组:可成长,能得到...

网友评论

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

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