给定求组合数公式为:C(n,m)=m!/n!(m-n)!,编一程序,输入m和n的值 ,求C(n,m)的值
来源:百度知道 编辑:UC知道 时间:2024/06/24 14:35:38
要求主函数调用以下函数求组合数:
int Fabricate(int m,int n); //返回C(n,m)的值
Fabricate函数内又许调用Multi函数:
int multi(int m,int n); //返回m*m-1*...*n
int Fabricate(int m,int n); //返回C(n,m)的值
Fabricate函数内又许调用Multi函数:
int multi(int m,int n); //返回m*m-1*...*n
#include<stdio.h>
int Fabricate(int m,int n);
int multi(int m,int n);
void main()
{
int m,n,answer;
printf("输入m(按q退出):");
while(scanf("%d",&m))
{
printf("输入n:");
scanf("%d",&n);
if(n!=0&&m!=0)//判断m,n是否为0
{
if(m>n) //自动将大数设置为m,小数设置为n
printf( "%d\n", Fabricate(m,n));
else
printf( "%d\n", Fabricate(n,m));
printf("输入m(按q退出):");
}
else
printf("错误!重新输入,输入m:");
}
}
int Fabricate(int m,int n)
{
int sum_m=1,sum_n=1,sum_mn,sum;
int i=m,j=n;
for(int i=m;i>0;i--)//求m的阶乘
sum_m*=i;
for(int j=0;j>0;j--)//求n的阶乘
sum_n*=j;
sum_mn=multi(m,n);
return (sum_m/sum_n)*sum_mn;
}
int multi(int m,int n)
【求助】组合数公式Cn m的Matlab修改,急
矩阵乘法C(m*n)=A(m*p)*B(p*n),其中m、n、p为矩阵的行列数。
设m={a,b.c},n={-1,0,1}. 求m到n构成的映射数
输入一个正整数,求该数的阶乘.询问用户是否愿意继续.提示:n的阶乘公式为:n!=1*2*...*(n-1)*n
给定an=log<n+1>(n+2),n属于N+,定义使a1*a2*...ak为整数的k,k属于N+,叫企盼数.
用C语言编程,求两个数M和N的公约数.
用C语言求在2到100000之间分别以两个给定的数为最大公约数和最小公倍数的个数
求教(组合问题):从n本不同的书中抽出k本的方法数为C(n ,k);
已知m,n都为自然数,且m(m-n)-n(n-m)=12,求m,n
如何证明组合数公式?