2013-03-13 1 views
0

Функция can 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

+1

Вы можете использовать его. В этом конкретном случае это, очевидно, плохая идея. Название функции также является плохой идеей, поскольку это не то, что вы вычисляете. –

ответ

0

Вы можете использовать любую функцию в рекурсии. pow - просто функция, ничего особенного в этом.

+1

Согласен, но, возможно, следует отметить, что есть несколько функций, которые не подходят для рекурсии - некоторые функции времени и, например, 'strtok'. –

+0

Кто-то сказал мне, что я не могу, и я думал, что это странно ... Спасибо! –

0

Рекурсия не ограничивает какие функции вы можете использовать и не можете использовать. Итак, да, pow может использоваться в рекурсивной функции.

В вашем примере pow(x,n) будет называться первым (скорее всего), а возвращаемое значение будет делено на n. Затем все соответствующие данные помещаются в стек (включая ответ на выполненный нами расчет) и вызывается exponencial(x,n-1). Когда этот рекурсивный вызов возвращается, данные снова выталкиваются из стека, и наш конечный результат вычисляется и возвращается.

1

ДА .. Вы можете

Его просто функция, которая работает аналогично любой другой функции, которую вы написали