所在位置:主页 > 程序语言 > C语言组合算法

C语言组合算法

发布时间:2023-11-29 13:09来源:www.sf1369.com作者:宇宇

一、C语言组合算法

排列组合的公式数学里有

组合的公式是nCm=n!/(m!(n-m)!)

但是排列组合的计算式子快捷方法不是这么做的

n*(n-1)……*(n-m+1)/m*(m-1)……*1

设两个循环

#include<stdio.h>

void main{

int a=1;

int b=1;

int c;

for(i=N;i>N-M;i--)

{

a=a*i;

}

for(i=M;i>0;i--)

{

b=b*i;

}

c=a/b;

}

二、用C编程排列组合

#include &lt;stdio.h&gt;

#define MAX_NUM 26

char ach15Char[6] =12345; // 一定要有序的!

int comb[MAX_NUM];

void combination(int m, int n)

{

int i, j;

for (i = m; i &gt;= n; i--)

{

comb[n] = ach15Char[i-1]; /* 选择当前的“头”元素 */

if (n &gt; 1)

{

/* 进入下一次更小的组合问题 */

combination( i - 1, n - 1);

}

else

{

/* 满了需要的组合数,输出 */

for (j = comb[0]; j &gt; 0; j--)

{

printf(%c, comb[j]);

}

printf(\t);

}

}

return;

}

int main(int argc, char *argv[])

{

comb[0] = 3;

combination( 5, comb[0]); /* C(15, 7) */

return 0;

}

三、学习SQL+编程语言

基本上主流的编程语言都可以结合SQL Server使用,比如VB,C++,Java,C#,还有WEB编程方面的JSP,ASP,PHP等,但是SQL Server是微软的产品,配合微软的产品使用兼容性会好一点,问题相对也少一点

我建议你学C#吧,既可以结合.NET架构做WEB开发,也可以做一般的应用程序,将来发展的趋势强劲,但如果你没接触过面向对象编程,关于对象方面可能要补一补

四、一个C语言求组合数的程序

这是由于阶乘数很大。在计算的中间过程,int类型溢出了。

可以把

int xjc = 1, yjc = 1,zjc = 1;

改为

double xjc = 1, yjc = 1,zjc = 1;