重寫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 ...