二项式系数递归

来源:互联网 发布:mysql下载安装版本 编辑:程序博客网 时间:2024/04/29 11:02

二项式系数递归


这个算法的结果是:给出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;}}

运行截图:



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






0 0