解题思路:求出最长字符串的长度,相加时只需让相加之后的答案位数多一位
因为相同长度的数字相加最大只会向前进一位,如9+9=18,99+99=198.
最后只需判断第一位是否为,零为0不打印,反之,打印。
注意事项:
参考代码:
#include<stdio.h>
#include<string.h>
int main()
{
char arr[201] = { 0 }, ar[201] = { 0 };
int a[201] = { 0 }, b[201] = { 0 };
scanf("%s", arr);
scanf("%s", ar);
int len = strlen(arr) > strlen(ar) ? strlen(arr) : strlen(ar);
for (int i = strlen(arr) - 1, j = len; i >= 0; i--, j--)
a[j] = arr[i] - 48;
for (int i = strlen(ar) - 1, j = len; i >= 0; i--, j--)
b[j] = ar[i] - 48;
for (int i = len; i >= 0; i--)
a[i] += b[i];
for (int i = len-1; i >= 0; i--)
{
a[i] += a[i + 1] / 10;
a[i + 1] %= 10;
}
if (a[0])
printf("%d", a[0]);
for (int i = 1; i <= len; i++)
printf("%d", a[i]);
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复