トップページに戻る
次の競技プログラミングの問題へ
前の競技プログラミングの問題へ
ABC-055-B Training Camp
■■■問題■■■
すぬけくんはトレーニングが好きなのでN回だけトレーニングすることにしました。
すぬけくんのトレーニング開始前のパワーは1です。
すぬけくんがi回目のトレーニングを終えるとパワーがi倍されます。
すぬけくんがN回トレーニングをしたあとのパワーを求めなさい。
ただし、答えの値は非常に大きな値になることがあるので 10億7で割ったあまりを出力してください。
■■■入力■■■
N
●1 <= N <= 10万
■■■出力■■■
答えを10億7で割ったあまりを出力せよ。
C#のソース
using System;
using System.Collections.Generic;
class Program
{
static string InputPattern = "Input1";
static List<string> GetInputList()
{
var WillReturn = new List<string>();
if (InputPattern == "Input1") {
WillReturn.Add("3");
//6
//●1回目のトレーニングを終えると、パワーは1倍され1になります
//●2回目のトレーニングを終えると、パワーは2倍され2になります
//●3回目のトレーニングを終えると、パワーは3倍され6になります
}
else if (InputPattern == "Input2") {
WillReturn.Add("10");
//3628800
}
else if (InputPattern == "Input3") {
WillReturn.Add("100000");
//457992974
//答えを10億7で割ったあまりを出力してください
}
else {
string wkStr;
while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
}
return WillReturn;
}
static void Main()
{
const long Hou = 1000000007;
List<string> InputList = GetInputList();
int N = int.Parse(InputList[0]);
long Answer = 1;
for (int I = 1; I <= N; I++) {
Answer *= I;
Answer %= Hou;
}
Console.WriteLine(Answer);
}
}
解説
ナイーブに解いてます。