思路:相加后,先判断是否为负数,负数单独输出'-',然后转成正数。用辗转相除法存进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;
}
版权声明:本文为博主原创文章,如有错误,恳请大家在评论区指出,在下不胜感激~如要转载注明出处即可~