ABC055B - Training Camp

atcoder.jp

System.Numerics.BigInteger を使えば N が最大値 100000 でも計算できるけど、時間がかかりすぎて、とても2秒以内には終わらない。 最後に剰余を計算せずとも、毎回計算しても大丈夫だった。

using System;

namespace ABC055B
{
    class Program
    {
        static void Main(string[] args)
        {
            var n = int.Parse(Console.ReadLine());
            var m = 1000000007L;
            var a = 1L;

            for(var i = 1; i <= n; i++)
            {
                a = (a * i) % m;
            }

            Console.WriteLine(a);
        }
    }
}