题目
解题方法
方法一
由于题目限制两个输入取值范围都是10^6次方,所以两者加和不会超过10的7次方,所以创建包含3个元素的数组即可使用。
注意输出0的时候变为000,10的时候变为010等
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b, sum, k = 0, flag = 1;
int group[3]; //最多10^7次方,所以数字三个元素足够
scanf("%d%d", &a, &b);
sum = a + b;
if(sum < 0){
sum = -sum;
flag = 0;
}
do{
group[k++] = sum % 1000;
sum = sum / 1000;
}while(sum != 0);
if(flag == 0) printf("%c", '-'); //若取值为负,首先输出负号
printf("%d", group[--k]); //输出头部
while(k > 0){
printf(",%03d", group[--k]);
}
return 0;
}
方法二
#include<iostream>
using namespace std;
int main(){
int a, b;
scanf("%d%d", &a, &b);
string s = to_string(a + b);
int len = s.length();
for (int i = 0; i < len; i++){
cout << s[i];
if(s[i] == '-') continue;
if((i + 1) % 3 == len % 3 && i != (len - 1))
cout << ",";
}
return 0;
}
参考:
https://blog.csdn.net/a617976080/article/details/89052748
https://blog.csdn.net/qq_41528502/article/details/104169563?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3.pc_relevant_paycolumn_v3&utm_relevant_index=6