函數(shù)的遞歸調(diào)用怎么理解 求遞歸轉(zhuǎn)化為非遞歸的方法?
求遞歸轉(zhuǎn)化為非遞歸的方法?理論上,所有遞歸程序都可以由非遞歸程序?qū)崿F(xiàn)。循環(huán)方法是所有遞歸到非遞歸轉(zhuǎn)換中最理想的方法,它可以使代價(jià)最小化。然而,它也是最復(fù)雜的分析,簡(jiǎn)單的遞歸可以用這種方式處理。為了便于
求遞歸轉(zhuǎn)化為非遞歸的方法?
理論上,所有遞歸程序都可以由非遞歸程序?qū)崿F(xiàn)。循環(huán)方法是所有遞歸到非遞歸轉(zhuǎn)換中最理想的方法,它可以使代價(jià)最小化。然而,它也是最復(fù)雜的分析,簡(jiǎn)單的遞歸可以用這種方式處理。為了便于理解,這里有一個(gè)最簡(jiǎn)單的例子:尋找n的階乘。遞歸方法:int factorial(int n){if(n> 1){return n*factorial(n-1)//遞歸函數(shù)調(diào)用}else if(n==1){return 1//遞歸退出}else{return error//報(bào)告輸入錯(cuò)誤}非遞歸方法:factorial(int n){int k=1//增量int t=1//臨時(shí)結(jié)果while(k!=n){t*=k}返回t}