需要特别考虑a+b=0的情况
方法一:通过mod不断取出3位数放到数组中
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
int sum = a + b;
if (sum < 0)
cout << '-';
sum = abs(sum);
int list[100];
int i = 0;
if (sum == 0)
cout << '0';
while (sum != 0)
{
list[i++] = sum % 1000;
sum /= 1000;
}
for (int j = i - 1; j >= 0; j--)
{
if (j == i - 1)
printf("%d", list[j]);
else
printf("%03d", list[j]);
if (j != 0)
cout << ",";
}
}
方法二:将数值转为字符串后逐位输出
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
int a, b;
cin >> a >> b;
int sum = a + b;
if (sum < 0)
cout << '-';
sum = abs(sum);
string str = to_string(sum);
for (int i = 0; i < str.length(); i++)
{
cout << str[i];
// 由于已经输出, 所以i+1
// 最后一位数输出后, 不再输出逗号
if ((i + 1) % 3 == str.length() % 3 && i != str.length() - 1)
cout << ',';
}
}