C语言 · 大数加法

算法提高 大数加法  
时间限制:1.0s   内存限制:256.0MB
    
问题描述
  输入两个正整数a,b,输出a+b的值。
输入格式
  两行,第一行a,第二行b。a和b的长度均小于1000位。
输出格式
  一行,a+b的值。
样例输入
4
2
样例输出
6
 
 1 #include<stdio.h>
 2 #include<string.h>
 3 int main()
 4 {
 5     char a[1001],b[1001];
 6     int s[1001],d[1001];
 7     scanf("%s%s",&a,&b);
 8     memset(s,0,1001*sizeof(int));
 9     memset(d,0,1001*sizeof(int));
10     for(int i=strlen(a)-1,j=0; i>=0; i--)
11     {
12         s[j++]=a[i]-'0';
13     }
14     for(int i=strlen(b)-1,j=0; i>=0; i--)
15     {
16         d[j++]=b[i]-'0';
17     }
18     for(int i=0; i<1001; i++)
19     {
20         s[i]+=d[i];
21         if(s[i]>=10)
22         {
23             s[i]=s[i]-10;
24             s[i+1]++;
25         }
26     }
27     int i;
28     for( i=1000; i>=0; i--)
29         if(s[i])
30             break;
31         for(int j=i;j>=0;j--)
32         printf("%d",s[j]);
33     return 0;
34 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值