递归算法c语言 如何对递归进行理解?

如何对递归进行理解?既然你想用简单的白话来解释递归算法,我就给你解释一下,确保你能理解。有个熟悉的故事,正好可以解释递归。这个故事不断地调用自己,递归是一个函数多次调用自己。不同的是递归不能像这个故事

如何对递归进行理解?

既然你想用简单的白话来解释递归算法,我就给你解释一下,确保你能理解。

有个熟悉的故事,正好可以解释递归。

这个故事不断地调用自己,递归是一个函数多次调用自己。不同的是递归不能像这个故事那样多次调用自己。递归必须有终止条件,它将在多次调用后终止。

这个解释很口语化。

怎么更好地终极理解递归算法?

递归,通俗地说,就是在程序中调用自己。最典型的例子是因式分解整数。

一般来说,在编写递归程序时,必须有终止条件,否则会形成无限递归,形成死循环。计算n的程序!C语言如下:

#include

void main()

{

INTN=0,result=0

scanf(%d,&n)

result=mydigui(n)

printf(%n!=%dn,result)

}

myudigui(INTN)

{

if(n==1)/*递归程序终止条件:1的阶乘等于1。如果n等于1,则返回1*/

return(1)

否则/*n不等于1,则返回n*mydigui(n-1)。因为:n!=n*(n-1)!*/

返回(n*my)uDiGui(n-1))

}