一、题目
二、个人理解
Tips:
- 此题我一开始就踩了一个坑,就是按题目意思应该是从后往前每三位加逗号,而我却理解成从前往后了
- 此题采用字符串保存结果,最后反转输出
- 一些特殊情况,如0、负号、只有三位数字等
C++:
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a,b,sum,temp,len=0,tag=1;
string result="";
cin>>a>>b;
sum=a+b;
if(sum<0) {
tag=-1;//此时表示负号
sum*=-1;//转为正
}
if(sum==0) {
result+='0';//sum为0情况
}
while(sum) {
temp=sum%10;//取最后一位
sum/=10;
if(len%3==0&&len!=0) {//从后往前每三位加一个逗号
result+=',';
}
result+=('0'+temp);
len++;
}
if(tag==-1) {
result+='-';//加上负号
}
reverse(result.begin(),result.end());//反转一下字符串
cout<<result;
}