結果
| 問題 | No.1185 完全な3の倍数 |
| コンテスト | |
| ユーザー |
ID 21712
|
| 提出日時 | 2026-06-05 16:09:53 |
| 言語 | Go (1.26.1) |
| 結果 |
AC
|
| 実行時間 | 30 ms / 2,000 ms |
| コード長 | 907 bytes |
| 記録 | |
| コンパイル時間 | 11,015 ms |
| コンパイル使用メモリ | 270,004 KB |
| 実行使用メモリ | 18,028 KB |
| 最終ジャッジ日時 | 2026-06-05 16:10:10 |
| 合計ジャッジ時間 | 13,239 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge1_1 |
| 純コード判定待ち |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 39 |
ソースコード
package main
import . "fmt"
func main() {
var n int
Scan(&n)
xs := []int{0}
for i := 0; i < 9; i++ {
ys := []int{}
for _, x := range xs {
x *= 10
ys = append(ys, x,x+3,x+6,x+9)
}
xs = ys
}
for i := 0; i <= 9; i++ {
for j := 0; j <= 9; j++ {
if (i+j)%3 == 0 {
xs = append(xs, i*10+j)
}
}
}
m := map[int]bool{}
for _, x := range xs {
if 10 <= x && x <= n {
m[x] = true
}
}
Println(len(m))
}
/*
考察
3桁以上の数の場合は
任意の2桁の和が3の倍数になるには各桁が3,6,9,0になる必要がある?
和が0になる場合を3の倍数と呼ぶのかは不明だが
4種が9桁分だから4^9通り、全列挙してN以下だけピックアップするでもいいかも
2桁の場合は
3の倍数になるのはいろいろある
全通り探すでいいと思う
3の倍数なら桁和も3の倍数になるので雑に
*/
ID 21712