結果

問題 No.1185 完全な3の倍数
コンテスト
ユーザー ID 21712
提出日時 2026-06-05 16:09:53
言語 Go
(1.26.1)
コンパイル:
env GOCACHE=/tmp go build _filename_
実行:
./Main
結果
AC  
実行時間 30 ms / 2,000 ms
コード長 907 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 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
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

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の倍数になるので雑に

*/
0