记录一下自己栽的坑。一开始19分,我还以为是不够三位的补前导0,试了一下就剩10分了,最后发现自己0的情况没有判断(因为我的while循环条件是大于0)我把0的给忘了,注释写得很清楚,这里就不再赘述了
。
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string ans;
int a,b,sum=0;
cin>>a>>b;
sum=a+b;
if(sum<0)
cout<<"-";
sum=abs(a+b);
int pos=0;//当前进行到第几个数
if(sum==0)
cout<<"0"<<endl;
else{
while(sum>0){
ans.push_back(sum%10+'0');//小的位数先加进去
sum/=10;
pos++;
if(pos%3==0&&sum!=0)//判断一下是否够3个并且sum还没有等于0那么就加一个','
ans.push_back(',');//如果sum等于0说明这一位加进去后正好凑够当前的这一组3个,没有下一位了,就不能再加逗号了
}
reverse(ans.begin(),ans.end());//最后再翻转过来
cout<<ans<<endl;
}
return 0;
}