scau oj 高精度加法

 

1046 计算高精度加法

时间限制:1000MS  代码长度限制:10KB
提交次数:4771 通过次数:1813

题型: 编程题   语言: G++;GCC

Description

由键盘输入两个位数很长的整数(一行一个,最多不超过80位),试计算并输出这两个数的和。



 

输入样例

1234567890123456789353534532453453453434534
987654321098765324534534534534532


 

输出样例

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

int main()
{
    char m[80],n[80];

    int i,k,len_m,len_n,max;
    int a[80]={0},b[80]={0},c[81]={0};
    scanf("%s",m);

    len_m=strlen(m);
    for(i=0;i<len_m;i++)
    {
        a[i]=m[len_m-1-i]-'0';
    }

    scanf("%s",n);
    len_n=strlen(n);
    for(i=0;i<len_n;i++)
    {
        b[i]=n[len_n-i-1]-'0';
    }
    if(len_m>len_n) max=len_m;

    else max=len_n;
 
    k=0;
    for(i=0;i<max;i++)
    {
        c[i]=(a[i]+b[i]+k)%10;
        k=(a[i]+b[i]+k)/10;

    }
    if(k!=0)
    {max++;c[max-1]=k;}    for(i=max-1;i>=0;i--)
    {
        printf("%d",c[i]);
    }

    return 0;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值