网站建设资讯

NEWS

网站建设资讯

c语言递归函数的用途 c语言函数递归

C语言中的递归函数有什么用途?什么意义?

好像麻烦 没什么作用啊!阶乘我有for循环照样实现又简单!

为巍山等地区用户提供了全套网页设计制作服务,及巍山网站建设行业解决方案。主营业务为做网站、成都网站建设、巍山网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

int f(int n)//实现阶乘参数

{

int tem = 1;

for(;n0;n--)

{

tem*=n;

}

return tem;

}

c语言函数的递归应用

我解释下具体执行过程:

printf("%d!=%ld\n",num,mul(num));

这里调用了mul(num)方法,第一个值是5,进入方法后,

if(51) x=5*mul(5-1);

这里又调用了一次方法,

mul(5-1)

这里就是递归调用了,需要把4的值带入方法又执行一次,

变成:if(41) x=4*mul(4-1);

这里又调用了一次方法,

mul(4-1)

依次类推为:if(31) x=3*mul(3-1);

if(21) x=2*mul(2-1);

这里看懂了没,递归函数关键字在“递”和“归”,相当于循环,一直到条件不满足时在“归”,一步步return直到第一个调用的mul方法。在return主函数。

也就是从最后一次调用

mul(2-1)时

n的值为1了,执行else语句,结束“递”方法操作,return语句,返回X=1,那么接下来变为

if(21) x=2*1,返回X=2,接下来变为:

if(31) x=3*2,返回X=6,接下来变为:

if(41) x=4*6,返回X=24,接下来变为:

if(51) x=5*24,返回X=120 结束递归调用。

希望你能看懂,还有问题在补充吧!

递归函数通常是用来解决什么问题的?

递归函数通常用来解决结构自相似的问题。所谓结构自相似,是指构成原问题的子问题与原问题在结构上相似,可以用类似的方法解决。具体地,整个问题的解决,可以分为两部分:第一部分是一些特殊情况,有直接的解法;第二部分与原问题相似,但比原问题的规模小。实际上,递归是把一个不能或不好解决的大问题转化为一个或几个小问题,再把这些小问题进一步分解成更小的问题,直至每个小问题都可以直接解决。因此,递归有两个基本要素:

(1)边界条件:确定递归到何时终止,也称为递归出口。

(2)递归模式:大问题是如何分解为小问题的,也称为递归体。递归函数只有具备了这两个要素,才能在有限次计算后得出结果。

递归就是某个函数直接或间接地调用了自身,这种调用方式叫做递归调用。说白了,还是函数调用。既然是函数调用,那么就有一个雷打不动的原则:所有被调用的函数都将创建一个副本,各自为调用者服务,而不受其他函数的影响。


当前标题:c语言递归函数的用途 c语言函数递归
新闻来源:http://njwzjz.com/article/dosdhho.html