[PAT-A 1001]A+B Format

在这里插入图片描述
题目大意:
给出两个整数数a,b(不超过10^9)求a+b的值,并按照xxx,xxx,xxx,xxx的格式输出

思路:
1.计算a+b保存在sum中,如果sum为负,输出"-",并且另sum等于自己的相反数。
2.将sum的每一位都分别保存在数组中,同时统计sum的位数。
3.从高位向低位输出,其中遇到位数i%3=0的情况输出逗号,最后一组即i=0是不用输出逗号。

AC代码:

//PAT_A 1001
#include<cstdio>
#include<cstring>
using namespace std;
int num[10];
int main() {
	int a, b, sum;
	(void)scanf("%d %d", &a, &b);
	sum = a + b;
	if (sum < 0) {
		printf("-");
		sum = -sum;
	}
	int len = 0;
	if (sum == 0)num[len++] = 0;//sum保存在数组中,sum为0时特殊处理
	while (sum != 0) {
		num[len++] = sum % 10;
		sum /= 10;
	}
	for (int i = len - 1; i >= 0; i--) {
		printf("%d", num[i]);
		if (i > 0 && i % 3 == 0)printf(",");//每遇到i%3==0输出一个逗号,最后一组不用
	}
	return 0;
}
发布了101 篇原创文章 · 获赞 1 · 访问量 2992

猜你喜欢

转载自blog.csdn.net/weixin_44699689/article/details/104142365