C語言所有遞歸都可以用非遞歸算法實現,最典型的就是迭代法,有時比遞歸更容易理解。至于遞歸中的形式參數是自動變量,沒明白樓主的意思,形參就是形參啊,形參變量也是變量,其內存分配在棧區,隨著函數的結束,其內存也會被釋放,形參的生命周期與函數生命周期相同哈(同生共死)
實現方法
#include
unsigned int Fibonacci(int n);
int main( void )
{
int i;
for(i = 1 ;i <= 20;i ++)
{
printf("%d ",Fibonacci(i));
}
return 0;
}
unsigned int Fibonacci(int n)
{
if( n == 1 || n == 2) // 遞歸結束的條件,求前兩項
return 1;
else
return Fibonacci(n-1)+Fibonacci(n-2); // 如果是求其它項,先要求出它前面兩項,然后做和。
}
以上便是小編對“C語言中的遞歸程序可以用非遞歸算法實現嗎?”的大致介紹,希望能有所幫助!
其實做為一個開發者,有一個學習的氛圍跟一個交流圈子特別重要這里我推薦一個C語言C++交流群692375453,不管你是小白還是大牛歡迎入駐,大家一起交流成長。