解题思路:
                     
一、基本思路: 1、字符串读入 2、字符串转数组 3、竖式加法 4、消前导0 5、倒序输出
1、字符串读入:因为题目要求计算的数字已经远远超过了long long的范围,所以需要使用一个字符串来存储数字进行输入
2、字符串转数组:
                       例如一个数字:1238
x[0]='1' - '0' -->转换成数组 a[4]=1 可以推出--> x[i]='1' --> a[4-i]=1 //其中4为x的长度
x[1]='2' - '0' -->转换成数组 a[3]=2 x[i]='2' --> a[4-i]=2
x[2]='3' - '0' -->转换成数组 a[2]=3 x[i]='3' --> a[4-i]=3
x[3]='8' - '0' -->转换成数组 a[1]=8 //从个位开始 x[i]='8' --> a[4-i]=8
3、竖式加法:
                                         例如:
                                                        1    2    3    8                                        设:   a[1]=8    ,    b[1]=5    
                                                    +        4    6    5            推出公式——>       则 c[1]+=a[1]+b[1]=13    //小细节,这里要c[i]+=
                                                    ————————                                             c[2]=c[1]/10;    进位
                                                        1    7     0   3                                                  c[1]=c[1]%10;    进位后剩下的
                
                4、消前导0:
要使得 两数的最高位都不是0
                                        如果两个数字都是八位数的话会得到一个九位数,把长度加一即可
            
                5、倒序输出:
                                    以上的结果:
                                                        c[1]=3    c[2]=0    c[3]=7    c[4]=1
                                                        倒序输出即可得到答案
                
参考代码:
#include using namespace std;
string x,y;    //定义两个字符串
int a[100000],b[100000],c[100000],alen,blen,clen; 
int main()
{
cin >> x >> y;    //字符串读入
 
alen=x.length();    //测量字符串x的长度
blen=y.length();    //测量字符串y的长度
for(int i=0 ; i<alen ; i++)
{
a[alen-i]=x[i]-'0';    //字符串转数组 
} 
for(int i=0 ; i<blen ; i++)
{
b[blen-i]=y[i]-'0';    //字符串转数组 
} 
clen=max(alen,blen);    //取最大值 
for(int i=1 ; i 0)    //如果两个位数相同的相加要进一位
{
clen++;    //长度+1
}
for(int i=clen ; i>=1 ; i--)    //倒序输出
{
cout << c[i];
}
return 0;
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复