Реализация Рекурсивных Функций (задачи)

Facktor88

New member
10.02.2014
2
0
#1
Добрый день , помогите решить задачи :
================================================================================
====
1.Реализовать рекурсивную функцию вычисления степени из числа (Pow)

2.Реализовать рекурсивную функцию линейного поиска в массиве (SearchInArray)

3. Реализовать рекурсивную функцию , которая принимает номер числа Фибоначчи , и возвращает само число.
================================================================================


Мои примеры функций :

1. (Pow)

C++:
int pow(int a, int n);
{
int f = 1;
for (int i = 1; i <= n; i++)
f = f*a;
return f;

2.int searchElement(int a[], const int n, const int key);
C++:
{
for (int i = 0; i < n; i++)
{
if (a[i] == key)
{
return i;
}
}
return -1;
}
====================================================================


Вот несколько примеров рекурсии на факториале (преподавателя) :

int fact(int n)
C++:
{
int res = 1;
while (n > 0)
{
res *= n;
n--;
}
return res;
}

int fact(int n)
{
if (n > 0)
{
return n * fact(n - 1);
}
return 1;
}
int factor(int n)
{
return n > 0 ? n * factor(n - 1) : 1;
}
void main()
{
cout << fact(5) << endl;
}
Мне нужно вот таким образом реализовать вышеуказанные функции (рекурсивно) .

Заранее благодарен.

P.S. Ссылки и указатели еще не учили, прошу их не использовать.
 
W

Whatka

#2
и что не понятно??
это же программирование-учись думать
проследи по какому алгоритму преподователь преобразовывал цикл в рекурсию
 
R

rrrFer

#4
Что конкретно не получается?

C++:
int pow(int a, int n) {
if (a == 0) return 0;
if (n == 0) return 1;
if (n < 0) return pow(a, n + 1) / a;
return pow(a, n - 1) * a;
}
аналогично со всеми остальными задачами. Я код не проверял, возможны опечатки, но суть должна быть ясна.

Вот тут: http://pro-prof.com/archives/813 есть статья на тему рекурсии и циклов. Примеры там не только на С++, но и на С++ тоже есть. Хотя, статья не очень хорошая (не знаю почему год назад я писал так плохо, каюсь (( )