Thứ Năm, 2 tháng 4, 2015

tính tổ hợp chập k của n theo tính chất C(n,k) = C(n-1,k-1) + C(n-1,k)

C(n,k) = 1 nếu k=0 hoặc k=n
C(n,k) = C(n-1,k-1) + C(n-1,k) nếu 1<k<n
#include <stdio.h>
#include <conio.h>
int giaithua(float n)
{
float g=1;
for(float i=1;i<=n;i++)
g=g*i;
return g;
}
int tohop(float n, float k)
{
if(k==0 || k==n)
return 1;
else
if(k>n || k<1)
printf("\n sai cu phap");
else
if(1<k<n)
return (giaithua(n-1)/(giaithua(k-1)*giaithua(n-k))) + (giaithua(n-1)/(giaithua(k)*giaithua(n-k-1)));
}
int main()
{
float n,k;
printf("\n nhap n: "); scanf("%f",&n);
printf("\n nhap k: "); scanf("%f",&k);
printf("\n %f", tohop(n,k));
getch();
return 0;
}

1 nhận xét:

Unknown nói...

ko ép kiểu tohop(n,m) nên ko ra được kết quả khi bạn khai báo nó là int