遞歸算法c語言 如何對遞歸進(jìn)行理解?
如何對遞歸進(jìn)行理解?既然你想用簡單的白話來解釋遞歸算法,我就給你解釋一下,確保你能理解。有個(gè)熟悉的故事,正好可以解釋遞歸。這個(gè)故事不斷地調(diào)用自己,遞歸是一個(gè)函數(shù)多次調(diào)用自己。不同的是遞歸不能像這個(gè)故事
如何對遞歸進(jìn)行理解?
既然你想用簡單的白話來解釋遞歸算法,我就給你解釋一下,確保你能理解。
有個(gè)熟悉的故事,正好可以解釋遞歸。
這個(gè)故事不斷地調(diào)用自己,遞歸是一個(gè)函數(shù)多次調(diào)用自己。不同的是遞歸不能像這個(gè)故事那樣多次調(diào)用自己。遞歸必須有終止條件,它將在多次調(diào)用后終止。
這個(gè)解釋很口語化。
怎么更好地終極理解遞歸算法?
遞歸,通俗地說,就是在程序中調(diào)用自己。最典型的例子是因式分解整數(shù)。
一般來說,在編寫遞歸程序時(shí),必須有終止條件,否則會(huì)形成無限遞歸,形成死循環(huán)。計(jì)算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)。因?yàn)椋簄!=n*(n-1)!*/
返回(n*my)uDiGui(n-1))
}