結果

問題 No.500 階乗電卓
ユーザー toshiro_yanagi
提出日時 2019-02-26 06:24:53
言語 Go
(1.23.4)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 422 bytes
コンパイル時間 13,897 ms
コンパイル使用メモリ 234,336 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2025-01-03 03:12:27
合計ジャッジ時間 14,883 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 20
権限があれば一括ダウンロードができます

ソースコード

diff #

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