题目大意是两个整数相加,然后每隔三位数一个加一个逗号,如果结果不到4位数,就不用加逗号(也就是西方的数字表达方式)
感觉思路不怎么难,就是各种奇奇怪怪的情况没考虑完全。。。运行一次查一次漏,感觉这样不太行
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
a+=b;
if(a<0)
{
cout<<'-';
}
//转化成字符串
string ans=to_string(abs(a));
int i=ans.length()%3;
//因为是从后面算起每三位为一个组,所以先把前面的凑不够的输出 例如 98,765 先输出98
for(int j=0;j<i;++j)
{
cout<<ans[j];
}
//如果上面没有输出数字,或者输出了全部的数字之后,后面是不需要加','的
if(i!=0&&ans.length()>3)
{
cout<<',';
}
//每三个数字输出一组,注意最后一组后面没有','
for(;i<(int)ans.length();)
{
if(i+3<ans.length())
{
cout<<ans[i]<<ans[i+1]<<ans[i+2]<<',';
}else
{
cout<<ans[i]<<ans[i+1]<<ans[i+2];
}
i+=3;
}
}