题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805528788582400
题目大意:计算a+b的值(a、b为整数),并按要求格式输出。格式为 三个数字为一组 用逗号隔开(除非少于四位数字)。
思路:一开始用输入输出流stringstream,错误,其内部是用科学计数法表示的,如100000表示为1e5;逗号添加位置应该是从后向前数三位加一个逗号,而不是从前往后。。。
#include<bits/stdc++.h>
using namespace std;
int a,b,ret;
string s,ans;
int main() {
s.clear();
cin>>a>>b;
ret=a+b;
int tmp=abs(ret);
if(tmp==0) s+='0'; //数字转换为字符串
else {
while(tmp) {
s+=tmp%10+'0';
tmp/=10;
}
}
int st=0,cnt=0;
for(int i=0; i<s.length(); i++) {
ans+=s[i];
cnt++;
if(cnt%3==0&&i!=s.length()-1) {
cnt=0;
ans+=',';
}
}
if(ret<0) {
ans+='-';
}
reverse(ans.begin(),ans.end());
cout<<ans<<endl;
}