预备
to_string(type val);
1.type可以是整形(长整型,无符号都可以)也可以是浮点型。
2.转换完的字符串str[0]存放的是最高位或负号(如果是负数)
3.如果val为浮点数要注意精度的问题,我测试的double只会保留六位小数。
思路
1.计算A + B,并将其转换为字符串
2.遍历字符串,每三个字符就加一个逗号(如果是最高数字位则不加)
代码
#include<iostream>
#include<string>
using namespace std;
int main(){
int a, b;
cin >> a >> b;
string str = to_string(a + b);//计算a + b
string res = "";
for(int i = str.size() - 1, j = 0; ~i; i -- ){//从个位开始遍历
res = str[i] + res;
j ++ ;
if(j == 3 && i && str[i - 1] != '-'){//如果添加了三个字符,并且该位不是最高数字位。
res = "," + res;
j = 0;//重新计数
}
}
cout << res << endl;
return 0;
}