用C程序计算nPr的值?

排列,nPr也可以表示为P(n,r)是找到排列数目的数学公式。P(n,r)的公式为n!/(n – r)!。

一组n个元素上的排列数由n!其中“!” 代表阶乘。

Input:n=5;r=4;
Output:120

说明

P(5, 4) = 5! / (5-4)! => 120 / 1 = 120
5!=1*2*3*4*5*=120

示例

#include<iostream>
using namespace std;
long int fact(int x) {
   int i, f=1;
   for(i=2; i<=x; i++) {
      f=f*i;
   }
   return f;
}
int main() {
   int n, r;
   long int npr;
   n=5;
   r=4;
   npr=fact(n)/fact(n-r);
   printf("%d",npr);
}