#include <iostream>
#include <string>
using namespace std;

int main() {
    string N;
    cin >> N;
    int len = N.length();
    for (int i = 0; i < len; i++) {
        cout << N[i];
        if ((len - (i + 1)) % 3 == 0 && i + 1 != len) {
            cout << ",";
        }
    }
}

C++风味的解决方案

第一点要注意的是取模运算(%)的优先级要高于加减运算,所以我一开始忘加上括号就错误了。

第二点是核心思路:(总长度-目前第几位)如果是3的倍数的话,就加上逗号,但是要小心的是,最后一位无论如何不能加上逗号,于是就用and(&&)来过特判。