加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数加法

发布时间:2020-12-14 02:28:32 所属栏目:大数据 来源:网络整理
导读:Description 求两个非负整数(1000位以内)的和。 Input 两个非负整数(1000位以内),以空格分隔。 Output 两个非负整数的和。 Sample Input 222222222211 222222222222 Sample Output 333333333333 #includestdio.h #includestdlib.h int main(){ int i,t1
  • Description

求两个非负整数(1000位以内)的和。

  • Input

两个非负整数(1000位以内),以空格分隔。

  • Output

两个非负整数的和。

  • Sample Input

222222222211 222222222222

  • Sample Output

333333333333

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int i,t1,t2,t,m=0;
    char a[1000],b[1000];int c[1000];
    scanf("%s%s",a,b);
    t1=strlen(a);t2=strlen(b);
    if(t1>t2)
    {
        for(i=t1-1;i>=t1-t2;i--)
        {    t=a[i]-'0'+b[i-t1+t2]-'0'+m;
        c[i]=t%10;
        m=t/10;
        }
        if(m)
        {
            for(i=t1-t2-1;i>=0;i--)
            { 
            t=a[i]-'0'+m;
            c[i]=t%10;
            m=t/10;
            }
            if(m)
                printf("1");
        }
        else
            for(i=t1-t2-1;i>=0;i--)
                c[i]=a[i]-'0';
            for(i=0;i<t1;i++)
               printf("%d",c[i]);
            printf("n");
    }
    else
    {
        for(i=t2-1;i>=t2-t1;i--)
        {    t=b[i]-'0'+a[i-t2+t1]-'0'+m;
        c[i]=t%10;
        m=t/10;
        }
        if(m)
        {    for(i=t2-t1-1;i>=0;i--)
            {
            t=b[i]-'0'+m;
            c[i]=t%10;
            m=t/10;
            }
            if(m)
                printf("1");
        }
        else
            for(i=t2-t1-1;i>=0;i--)
                c[i]=b[i]-'0';
            for(i=0;i<t2;i++)
                printf("%d",c[i]);
            printf("n");
    }
        return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读