编一个最简单易懂的程序,求n个数中r个组合,输出组合数

编一个最简单易懂的程序,求n个数中r个组合,输出组合数,第1张

以前写过类似的,可以参考一下哈

/*

5. 从五种颜色的球中选出3个,输出每种可能的组合数。要求:

1) 定义枚举类型enum Color{Yellow, Blue, Black, Red, Green}

2) 编写函数void Display( Color c), //输笑贺出枚举常量c所对应的颜色字符串。如:租磨c==Yellow时碰型派,则输出”Yellow”字符串

3) 编写函数void combination(int n,int k),实现从n个球中选出k个球的所有组合数。在此函数中调用函数Display(),输出每种组合所对应的颜色,如:

red yellow blue

red yellow black

……*/

#include <stdio.h>

#include <stdlib.h>

enum Color{Yellow, Blue, Black, Red, Green}

//定义一个辅助数组,用来临时存放每一种组合结果

int temp[100]

void Display(enum Color c)

{

switch(c)

{

case Yellow:

printf("Yellow ")

break

case Blue:

printf("Blue ")

break

case Black:

printf("Black ")

break

case Red:

printf("Red ")

break

case Green:

printf("Green ")

break

}

}

//通过递归实现 num记录抽取球的个数,开始的时候num=k

void combination(int n,int k,const int num)

{

int i,j

for(i=ni>=ki--)

{

temp[k-1] = i-1//记录一个位置

if(k>1)

combination(i-1,k-1,num)

else

{

for(j=num-1j>=0j--)

Display(temp[j])

printf("\n")

}

}

}

int main()

{

combination(5,3,3)

system("pause")

return 0

}

excel数字组合函数步骤如下:

C1公式应该是=A1*LEFT(B1,FIND("亏此蠢扒纯*",B1)-1)*RIGHT(B1,LEN(B1)-FIND("销陪*",B1))

#include <stdio.h>

void main()

{

void choose(int a,int b)

int a,b,c,d

printf("请输入两个整数,以0,0结束\n")

scanf("%d,%d",&a,&b)

scanf("%d,%d"银扰,&c,&d)

if(c==0&&d==0)

choose(a,b)

}

void choose(int a,int b)

{

if(b>a)

{

printf("error!")

}

else

{

int fenmu=b,fenzi=a

for(int i=a-1i>a-bi--)

fenzi*=i

for(int j=b-1j>1j--)

fenmu*=j

int temp

temp=fenzi/fenmu

printf("信搏雹滑帆%d",temp)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8186350.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存