アルゴ式の問題を解く Go 3 桁区切り
こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 3 桁区切り | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" "strconv" ) func main() { var n int fmt.Scan(&n) s := strconv.Itoa(n) // カンマを付与する var t []rune cnt := 0 for i := len(s) - 1; i >= 0; i-- { if cnt % 3 == 0 && cnt > 0 { t = append(t, ',') } t = append(t, rune(s[i])) cnt++ } // 逆にする var r []rune for i := len(t) - 1; i >= 0; i-- { r = append(r, t[i]) } fmt.Println(string(r)) } 逆にするループは削れそうです。 package main import ( "fmt" "strconv" ) func main() { var n int fmt.Scan(&n) s := strconv.Itoa(n) // カンマを付与する var t string for i := 1; i <= len(s); i++ { t = string(s[len(s) - i]) + t if i % 3 == 0 && i < len(s) { t = "," + t } } fmt.Println(string(t)) } これでいいですね。 ...