蓝桥杯 高精度加法

题目描述

给定两个整数 a 和 b,请你求出这两个整数的和。

输入描述

输入两个正整数 a,b,a 和 b 都不超过 100 位。

输出描述

输出 a+b 。

输入输出样例

输入:

1234567890123456789
9876543210987654321

 输出:

11111111101111111110

 代码:

#include<stdio.h>        
#include<string.h>
int main()
{
    char a[105],b[105];
    int i,j,sum=0,c=0,n[110]={0},f,k=0;
    gets(a);
    gets(b);
    for(i=strlen(a)-1,j=strlen(b)-1,k=0;i>=0||j>=0;i--,j--,k++){
        if(i<0)
            sum=b[j]-'0'+c;
        if(j<0) 
            sum=a[i]-'0'+c;
        else
            sum=a[i]-'0'+b[j]-'0'+c;    
        n[k]=sum%10;
        c=sum/10;
    }
    if(c>0) n[k]=c; 
    for(i=109;i>=0;i--){
        if(n[i]){
          for(j=i;j>=0;j--){
              printf("%d",n[j]);
            }
          break;
        }
    }
    return 0;
}

题目链接:高精度加法 - 蓝桥云课 (lanqiao.cn)

上一篇:【C语言小题】递归和非递归实现strlen函数的模拟


下一篇:python【try-exception】【装饰器】