Я создал эту простую программу, используя c для вычисления комбинаций. Но всякий раз, когда я ввожу большое значение, например 20,30,40 .. для переменной 'n' и для 'r', вывод программы неверен. Но эта программа отлично работает с маленькими числами, такими как 5,7,10 ... Как я могу решить эту проблему, чтобы найти комбинации, даже вводя большие числа для n и r?
Также я хочу использовать правило nCr = n-1Cr + n-1Cr-1 в этой программе, и я использую C язык
#include <stdio.h>
int fact(int i){
if(i <= 1){
return 1;
}
return i * fact(i-1);
}
int nCr(int n,int r){
int nCr;
if(r == 0 || n == r){
nCr = 1;
}else{
nCr = (fact(n-1)/(fact(r) * fact(n-1-r))) + (fact(n-1)/(fact(r-1) * fact(n-r)));
}
return nCr;
}
int main(){
int n,r;
printf("Enter n : ");
scanf("%d",&n);
printf("Enter r : ");
scanf("%d",&r);
printf("nCr value : %d\n",nCr(n,r));
return 0;
}
Большое спасибо за ваши ответы.