码迷,mamicode.com
首页 > 其他好文 > 详细

二项式系数递归

时间:2016-05-12 16:53:41      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

二项式系数递归


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

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


那么什么是递归呢?

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


递归步骤

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

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


举个例子:

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


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


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

技术分享


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


主体程序思想:

终止条件:由二项式系数性质(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;
	}
}

运行截图:

技术分享


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






二项式系数递归

标签:

原文地址:http://blog.csdn.net/qq_28684963/article/details/51366268

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!