digits 数字
separated into groups 分进组里
commas 逗号
written in the standard format 用标准格式写出
whitespaces(spaces, newlines, TABs) 包括空格、回车、tab键
解题思路1:
a,b数据范围均不超过1,000,000,最多加两个逗号
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
int s = a + b;
if(s < 0) {
cout << "-";
s *= -1;
}
string str = to_string(s);
int t = str.length() - 3;
if(t > 0) str.insert(t, ",");
if(t > 3) str.insert(1, ",");
cout << str;
return 0;
}
解题思路2:
正向遍历,一边输出一边检查该数位是不是3倍数位and不是最后一位
int main() {
int a, b;
cin >> a >> b;
int s = a + b;
if(s < 0) {
cout << "-";
s *= -1;
}
string str = to_string(s);
int len = str.length();
for (int i = 0; i < len; i++) {
cout << str[i];
if ((i + 1) % 3 == len % 3 && i != len - 1) cout << ",";
}
return 0;
}
学习:
str.insert(4,"sky"); //在下标为4的位置,插入字符串sky
a = str.insert(4,"sky"); //并赋给字符串b
str.insert(4,5,'x'); //在下标为4的位置,插入字符串5个字符x
b = str.insert(4,5,'x'); //并赋给字符串b
这篇博客介绍了两种C++方法来处理数字的分组和逗号插入。第一种方法通过预设位置插入逗号,第二种方法则在遍历过程中动态判断是否需要插入。这两种方法都考虑了负数的情况,并且可以处理百万级别的数字。
4692

被折叠的 条评论
为什么被折叠?



