A1001:A+B Format(20')

思路:相加后,先判断是否为负数,负数单独输出'-',然后转成正数。用辗转相除法存进sum1数组。再逆序输出,每次逢3的倍数输出一个','。

注意:要特判相加的和为0,单独输出。

代码:

#include<cstdio>
int main(){
	int a,b,sum = 0;
	scanf("%d%d",&a,&b);
	sum = a + b;
	if(sum < 0){
		printf("-");
		sum = -sum;
	}
	int sum1[10010];
	int i = 0;
	if(sum == 0){  //特判
		sum1[0] = 0;
		printf("0");
		return 0;
	}
	do{
		sum1[i++] = sum%10;
		sum /= 10;
	}while(sum != 0);
	/*
	//不需要单独输出前面不足3位的数,多此一举
	if(n%3 != 0){
		for(int j = 0;j < n%3; ++j){
			printf("%d",sum1[n - j -1]);
		}
		printf(",");
	}
	for(int j = 0;j < n - n%3; ++j){
		if(j % 3 == 0 && j != 0) printf(",");
		printf("%d",sum1[n - n%3 - j - 1]);
	}*/
	for(int j = i-1;j >= 0; --j){
		printf("%d",sum1[j]);
		if(j > 0 && j%3 == 0){  //逢3的倍数输出','
			printf(",");
		}
	}
	return 0;
}

版权声明:本文为博主原创文章,如有错误,恳请大家在评论区指出,在下不胜感激~如要转载注明出处即可~

猜你喜欢

转载自blog.csdn.net/wonz5130/article/details/81264608