二项式系数递归

二项式系数递归


这个算法的结果是:给出n的值和k的值,根据公式算出二项式系数值

算法目的练习使用递归算法


那么什么是递归呢?

在一个算法中,如果有直接调用自身或间接调用自身的过程,就是一个递归算法。


递归步骤

1>对应于某些参数求值的一个或多个终止条件。

2>一个递归步骤。它根据先前某次值求当前值。递归步骤最终导致终止条件。


举个例子:

幂函数的递归有一个终止条件,就是n=0时。递归步骤描述了一般情况:


递归介绍完了,接下来介绍部分二项式的内容


在初等数学中,我们学过关于二项式的一些性质,这里列出我们需要的两条:

二项式系数递归_第1张图片


好啦,准备工作都已经完成了,现在进行我们这个程序了!


主体程序思想:

终止条件:由二项式系数性质(1),当i=0或i=n时,返回1

递归步骤:由二项式系数性质(2),否则的话,令下标减1,上标不变=n1,下标减1,上标减1=n2,进行调用自己。


主体代码:(C语言)

int binom(int n,int i) {
	int n1;
	int n2;
	
	if((i == 0) || (i == n)) {
		return 1;
	}
	else {
		n1 = binom(n-1,i);
		n2 = binom(n-1,i-1);
		return n1+n2;
	}
}

最后再附上所有代码:
#include<stdio.h>

int binom(int n,int i);

int main() {
	int int1;
	int int2;
	
	printf("\nEnter an integer :\n");
	scanf ("%d",&int1);
	printf("\nEnter a second integer :\n");
	scanf ("%d",&int2);
	printf("\n");
	printf("Binomial Coefficiant : %d\n",binom(int1,int2));
	return 0;
} 

int binom(int n,int i) {
	int n1;
	int n2;
	
	if((i == 0) || (i == n)) {
		return 1;
	}
	else {
		n1 = binom(n-1,i);
		n2 = binom(n-1,i-1);
		return n1+n2;
	}
}

运行截图:

二项式系数递归_第2张图片


好啦,结束了,多多指教~~






你可能感兴趣的:(递归)