Nombre de combinaisons (N choisir R) dans C++

Ici, j'essaie d'écrire un programme en C++ pour trouver de la RCN. Mais j'ai un problème dans le résultat. Il n'est pas correct. Pouvez-vous m'aider à trouver ce que l'erreur est dans le programme?

#include <iostream>
using namespace std;
int fact(int n){
    if(n==0) return 1;
    if (n>0) return n*fact(n-1);
};

int NCR(int n,int r){
    if(n==r) return 1;
    if (r==0&&n!=0) return 1;
    else return (n*fact(n-1))/fact(n-1)*fact(n-r);
};

int main(){
    int n;  //cout<<"Enter A Digit for n";
    cin>>n;
    int r;
         //cout<<"Enter A Digit for r";
    cin>>r;
    int result=NCR(n,r);
    cout<<result;
    return 0;
}
Votre formule est mal, il a fact(n-1) dans le numérateur et le dénominateur (ils annuler).

OriginalL'auteur Hams | 2012-02-17