一、添加逗号
题目描述
这道题,给我们一个很大的数 N,要求我们给 N 每三位加一个逗号;
这里要注意:这个数很大,我们要用 long long 类型;
算法思路
这道题可以说非常简单了,先来看最直接的方法:
我们可以将一个数从个位开始,一位一位的取出来;所以我们就可以从个位开始,一位一位的取出来,每取出来 3 位就加上逗号。这里我们取出来的每一位要放到字符串 ret 中;进行上述操作之后,需要进行去掉尾部的逗号操作。完成上述所有操作,此时我们得到的字符串是倒序的,我们就要进行逆序再输出。
我们思考一下,这个数特别大,我们是不是可以按照字符串 string 的方式进行输入,再对字符串进行相关操作来完成加逗号?
按照字符串进行输入,然后从前/后开始进行遍历,注意应该在哪个字符的后面加逗号即可
我们仔细观察上图,我们需要在下标 2 和 5 位置的后面加逗号。细心的朋友可能已经看出来了,当 (n - i - 1)%3 == 0 时,我们就要进行在后面加逗号的操作;但是此时,下标 i 等于 n-1 时是不需要进行 + 逗号的,所以要进行一下单独判断的
代码实现
方法一:
#include <iostream>
using namespace std;
int main() {
long long n;
cin >> n;
long long x = n;
string str;
int i = 0;
while (x) {
str += (x % 10 + '0');
i++;
if (i % 3 == 0) str += ',';
x /= 10;
}
while (str.size() > 1 && str.back() == ) str.();
string ret;
( i = str.() - ; i >= ; i--) {
ret.(str[i]);
}
cout << ret << endl;
;
}


