遞迴與非遞迴習題

2021-08-19 22:08:58 字數 1062 閱讀 7532

1.遞迴和非遞迴分別實現求第n個斐波那契數。 

#includeint fib(int n)  

else

//可以跳n節台階 是2*fib(n-1)

} int main()

#includeint fib(int n)

if((n==1)||(n==2))

return 1;

while(a--)

return f3;

} int main()

2.編寫乙個函式實現n^k,使用遞迴實現 

#includedouble cifang(int n , int k)

}return 0;

} int main()

3. 寫乙個遞迴函式digitsum(n),輸入乙個非負整數,返回組成它的數字之和,例如,呼叫digitsum(1729),則應該返回1+7+2+9,它的和是19 

#includeint sum(int num)

return 0;

} int main()

4. 編寫乙個函式reverse_string(char * string)(遞迴實現) 

實現:將引數字串中的字元反向排列。 

要求:不能使用c函式庫中 

的字串操作函式。 

第一種不用遞迴方法:

#include#include#include#includeint my_strlen(char const *str)

return count ;

} char* reverse(char *str)

void reverse(char *str)

}int main()

5.遞迴方式實現列印乙個整數的每一位 

void print(int a)

int main()

遞迴與非遞迴演算法

一 題目分析 將非負十進位制整n轉換成b進製 其中b 2 16 將任意正整數n用2的冪次方表示 二 演算法設計 1 轉換進製問題 exer.cpp 遞迴演算法 遞迴出口 n b b 遞迴表示式 f n,b f n b,b n b b 遞迴棧表示 2 用二的冪次方表示任意正整數n問題 exer2.cp...

遞迴 非遞迴

遞迴演算法實際上是一種分而治之的方法,它把複雜問題分解為簡單問題來求解。對於某些複雜問題 例如 hanio塔問題 遞迴演算法是一種自然且合乎邏輯的解決問題的方式,但是遞迴演算法的執行效率通常比較差。因此 在求解某些問題時,常採用遞迴演算法來分析問題,用非遞迴演算法來求解問題 另外,有些程式語言不支援...

演算法 08 遞迴與非遞迴

我們曾經討論過,遞迴程式在解決大規模問題時,經常會導致程式效能下降甚至不可用,因此我們研究遞迴只是通過遞迴來分析問題的特性,最終將遞迴程式轉化為非遞迴程式實現。首先我們先看乙個用分治法 遞迴 畫刻尺的問題 在刻尺上每個英吋的1 2英吋點處做乙個標記,在1 4英吋的間隔處做乙個稍短的標記,在1 8英吋...