C 重寫power函式 遞迴與迴圈

2021-07-23 09:46:49 字數 878 閱讀 3861

重寫power()函式,返回乙個double型的正整數的任意次冪。另外要處理0的任意次冪都為0,任何數的任意次冪都為1(函式應報告0 的 0 次冪未定義,並將該值返回1)。分別使用迴圈和遞迴實現。

利用迴圈程式如下:

#include

double power(int n, int x);

int main()

double power(int n, int x)

else

}else

if (x ==0)

else

return 0;}

利用遞迴程式如下:

#include

double power(int n, int x);

int main()

double power(int n, int x)

else

if (x == 0)

else

return 0;}

程式結果:

please enter num and x:3 3

3^3=27.000

please enter another num and x:3 -3

3^-3=0.037

please enter another num and x:5 0

5^0=1.000

please enter another num and x:0 5

0^5=0.000

please enter another num and x:0 0

0^0 no defined

0^0=1.000

please enter another num and x:#

bye!

請按任意鍵繼續. . .

C 中的power函式

在cmath標頭檔案中存在函式pow,在stl numeric.h中存在對於power的具體實現 只看一下對於power的具體實現,之前不知道有沒有聽說過快速冪,power可以說就是快速冪的實現 函式原型如下 template inline t power t x,integer n templat...

迴圈與遞迴

優缺點 迴圈效率更高,遞迴容易理解 是大家普遍的觀點。儘管兩種想法在時間複雜度和空間複雜度上是等價的。但遞迴的有乙個弱勢 函式呼叫開銷如引數傳遞和堆疊之類的開銷,會導致在層次過深的時候,系統崩潰。遞迴是用棧機制實現的 c 每深入一層,都要占去一塊棧資料區域,對巢狀層數深的一些演算法,遞迴會力不從心,...

遞迴與迴圈

遞迴與迴圈 大一學c 的時候,老師說過遞迴與迴圈是可以相互轉化的,當時好像是用來兩重迴圈解決遞迴問題,演算法的複雜度依然是o n 最近發現可以通過模擬實現棧結構通過一重迴圈實現非遞迴演算法。遞迴必須滿足以下兩個條件 首先我們給出乙個最簡單的遞迴實現,演算法的目的是為了得到乙個大於等於10的數字。1 ...