2013-03-13 159 views
0

遞歸函數中可以使用pow函數嗎? 例如:遞歸函數中的Pow函數C++

double exponencial(double x, int n){ 
if(n>0) 
return (pow(x,n)/n)+exponencial(x,n-1); 
return 1; 
} 
+5

我很好奇,其他任何功能

它只是一個功能,你爲什麼認爲它不能用? – StoryTeller 2013-03-13 14:00:35

+1

您可以使用它。在這個特殊情況下,這顯然是一個糟糕的主意。函數的名稱也是一個壞主意,因爲這不是你正在計算的東西。 – 2013-03-13 14:48:37

回答

0

您可以在遞歸中使用任何函數。 pow只是一個沒有特別的功能。

+1

同意,但也許應該注意,有一些函數不適合遞歸 - 一些時間函數和例如'strtok'。 – 2013-03-13 14:02:51

+0

有人告訴我,我不能和我認爲這很奇怪...謝謝! – 2013-03-13 14:06:53

0

遞歸不穿什麼功能,你可以和不可以使用任何限制。所以是的,pow可以用在遞歸函數中。

在你的榜樣,pow(x,n)稱爲第一(最有可能),並且返回值將除以n。然後,將所有相關數據壓入堆棧(包括我們剛剛完成的計算的答案),並調用exponencial(x,n-1)。當這個遞歸調用返回時,數據會再次從堆棧中彈出,並計算並返回最終結果。

1

YES ..你可以的作品相似,你寫