中易网

C语言编程实现求组合数P=C(n,k)的值

答案:5  悬赏:10  
解决时间 2021-01-12 18:12
C语言编程实现求组合数P=C(n,k)的值
最佳答案
#include
int ZuHe(int n,int k)
{
int i = 1;
int temp1 = 1,temp2 =1;
if (n==k)
{
return 1;
}
else
{
for (i=1;i<=k;i++)
{
temp1 *= n-i+1;
temp2 *=i;
}
temp1 /=temp2;
return temp1;
}
}
void main()
{
int n,k,num;
printf("please input n and k:\n");
scanf("%d%d",&n,&k);
if (n {
printf("wrong!");
}
num = ZuHe(n,k);
printf("%d\n",num);
}
全部回答
//组合数P=C(n,k)=n*(n-1)*....*(n-k+1) / k!
int ZuHe(int n,int k)
{
int temp=1;
int f=1;
for(int i=0;i {
f *= i+1;
temp *= (n-i) ;//
}
return (temp / f) ;
}
double lnchoose(int n, int m)
{
if (m > n)
{
return 0;
}
if (m < n/2.0)
{
m = n-m;
}
double s1 = 0;
for (int i=m+1; i<=n; i++)
{
s1 += log((double)i);
}
double s2 = 0;
int ub = n-m;
for (int i=2; i<=ub; i++)
{
s2 += log((double)i);
}
return s1-s2;
}

double choose(int n, int m)
{
if (m > n)
{
return 0;
}
return exp(lnchoose(n, m));
}
用之前调用math.h头文件,用的话直接把值赋给choose()这个函数即可,直接调用上面的函数,返回一个double数值,可追问
#include
void main(){
int n,k,sum=1;
printf("请输入组合数P=C(n,k)中的n、k:");
scanf("%d %d",&n,&k);
for (int i=k+1;i<=n;i++)
sum*=i;
for (i=1;i<=n-k;i++)
{
sum/=i;
}
printf("C(%d,%d)=%d\n",n,k,sum);
}

unsigned f(unsigned n, unsigned k)
{
if (n < k || 0 == n)
{
return 0;
}
else
{
unsigned a = 1;
unsigned b = 1;
unsigned i = 0;
for (i = 0; i < n -k; i++)
{
a = a*(n - i);
}
for (i = 0; i < n - k; i++)
{
b = b*(i + 1);
}
return a/b;
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
dnf魔皇二觉叫什么 忘却者并非最终确定版
新人求教湾岸4改装升级问题
游戏角色帮取名,少林 小正太 三个字古代名
我要学习,我要考高分,我要当学霸
我想从银川到济宁去,如果坐火车怎样走?
大块冰块哪里有卖
有谁听过蜂之本蜂蜜的,听说是家族养蜂50多年
野旷天低树,江清月近人。运用了什么修辞手法
中国邮政储蓄银行ATM(五一路)(五一路与台山街
有什么看小视频好的软件
什么是有氧训练和无氧训练??
从上海寄个洗衣机到宿迁要多少钱?用什么快递
从茶山镇到横沥车站有多远
没有大枣可用红枣吗红枣有大枣功效?:
一层宽敞二层别致 复式和平层哪个适合您?
推荐资讯
小班幼儿防恐怖袭出教育活动总结
简历广告型和效果型的区别
请大神看看这个水表能不能读成1011立方
宇宙中有比黑洞更可怕的吗?
小厂房是指种,多大面积的才算小厂房?
动车高铁允许带螺丝刀老虎钳工具吗
我想去做入职体检我想请问一下是几点.下午去
canon打印机型号MG6880,打印错误,电源和警
澳华装修与雅庭,嘉禾哪个好?
驾驶人醉驾,车辆所有人,同乘人可能构成犯罪
乔丹集团老总是
哔哩哔哩会员答题20题
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?