はまやんはまやんはまやん

hamayanhamayan's blog

「,(カンマ)」 [yukicoder No.784]

https://yukicoder.me/problems/no/784

解説

https://yukicoder.me/submissions/315624

数字を文字列として見ると、後ろから3つ毎にカンマを入れる処理となる。
これを実装しよう。
 
実装を簡単にするために、「与えられる数は文字列として考えて処理」
「反転させて処理して、最後に反転する」ことにする。
反転させると、前から3つ毎にカンマを入れる処理となるので、forとi%3で場合分けして、カンマを差し込める。
最後に答えも反転しているので、反転させて答え。

string N;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    reverse(all(N));

    string ans = "";
    rep(i, 0, N.length()) {
        if (0 < i and i % 3 == 0) ans += ",";
        ans += N[i];
    }

    reverse(all(ans));
    cout << ans << endl;
}