【C#】【アルゴリズム】nPrを求める

nPr = n!/(n-r)! = n × (n – 1) × (n – 2) ×・・・× (n – (r + 1))なので、

        /**
         * nPrを求める
         * 
         * @param n 
         * @param r 
         * @return nPr
         */
        public long P(long n, long r)
        {
            long ret = 1;
            if(0 < n - r)
            {
                ret = n * P(n - 1, r);
            }
            return ret;
        }

これで求められるはず。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください