【C语言作业】两个三十位数相加(zhw版)

大林最近看了一些大数计算的资料,觉得颇有心得,于是他在课堂上出了一道简单的大数加法给学生做练习,当然两个加数都是超过int和long所能表示的数的范围。这让他的学生们不禁陷入了沉思,怎么办呢?做不出来的话期末成绩可能要59分了。在这危急时刻,有个聪明的阿飞同学挺身而出,通过仔细观察,他发现两个高位数的正整数相加,可以把这两个正整数分别拆成两个低位数的正整数之间的加法和进位运算。经过不懈努力,他成功地解决了这道题,获得了大林的表扬。请大家向阿飞同学学习,也编写类似程序来解决这个问题。

#include <stdio.h>
#include <stdlib.h>

int main()
{
long int A1,A2,A3,A4,A5,A6,a1,a2,a3,a4,a5,a6,a,b,c,d,e,f;
scanf("%5d%5d%5d%5d%5d%5d",&A1,&A2,&A3,&A4,&A5,&A6);
scanf("%5d%5d%5d%5d%5d%5d",&a1,&a2,&a3,&a4,&a5,&a6);
a=a1+A1;
b=a2+A2;
c=a3+A3;
d=a4+A4;
e=a5+A5;
f=a6+A6;
if(f>=100000) f=f-100000,e=e+1;
if(e>=100000) e=e-100000,d=d+1;
if(d>=100000) d=d-100000,c=c+1;
if(c>=100000) c=c-100000,b=b+1;
if(b>=100000) b=b-100000,a=a+1;
printf("%d%d%d%d%d%d",a,b,c,d,e,f);
return 0;
}

【这个虽然可以计算出正确的数字,但是在oj上却无法得满分,为什么?】

猜你喜欢

转载自www.cnblogs.com/asher0608/p/11689494.html