単車活動記

KRiMe(ケーライム)と読みます。単車活動や、パーツ交換などその他色々を記して行こうと思っています

関数呼び出しを使った階乗の通りプログラム

タイトル名なんて書いたら良いかよくわかりませんでした。

 

いわゆる

n!/r!(n-r)!を関数呼び出しを使用して作るプログラムです

 

説明はめんどくさいんでソースコードだけ書きます。

 

#include<stdio.h>

 

int factorial (int m)

{

           if (m > 0)

                      return (m * factorial(m - 1));

           else

                      return 1;

}

int combi(int n, int r)

{

           int a, b, c;

 

           a = factorial(n);

           b = factorial(r);

           c = factorial(n - r);

          

 

           return a / (b * c);

 

}

int main(void)

{

           int num1, num2, num3, num4, x, y, z;

 

           printf("男子の数は ");

           scanf("%d", &num1);

           printf("そのうち何人選びますか ");

           scanf("%d", &num2);

 

           x = combi(num1, num2);

 

           printf("女子の数は ");

           scanf("%d", &num3);

           printf("そのうち何人選びますか ");

           scanf("%d", &num4);

 

           y = combi(num3, num4);

 

           z = x * y;

 

           printf("組み合わせは%d通りです ",z);

 

           return 0;

 

}

 

これでnCrの計算ができるわけですが

この記事書いてる時点で疲れてきたので解読はどうぞご勝手に…………