結果

問題 No.500 階乗電卓
コンテスト
ユーザー toshiro_yanagi
提出日時 2019-02-26 06:24:53
言語 Go
(1.26.1)
コンパイル:
env GOCACHE=/tmp go build _filename_
実行:
./Main
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 422 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 17,580 ms
コンパイル使用メモリ 276,984 KB
実行使用メモリ 6,400 KB
最終ジャッジ日時 2026-06-06 11:05:55
合計ジャッジ時間 17,862 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 20
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

package main

import "fmt"

var mod int

func fact(n int) int {
	if n == 0 {
		return 1
	}
	return (n * fact(n-1)) % mod
}

func main() {
	mod = pow(10, 12)

	var n int
	fmt.Scan(&n)

	var ans int
	if n < 50 {
		ans = fact(n)
	} else {
		ans = 0
	}
	if n < 15 {
		fmt.Println(ans)
	} else {
		fmt.Printf("%012d\n", ans)
	}
}

func pow(a, b int) int {
	res := 1
	for range make([]struct{}, b) {
		res *= a
	}
	return res
}
0