Jeśli masz stworzyć rekurencyjną funkcję i masz jej opis matematyczny, to w zasadzie... Nie ma prostszego zadania. ;) W matematycznym zapisie zależności, masz jasno wyszczególnione, co i kiedy należy z funkcji zwrócić, wystarczy zapisać to w odpowiednim języku programowania. :)
Podam Ci przykład.
Polecenie: napisz funkcję silnia(n), dla n N.
- silnia(n) = 1, dla n = 0
- silnia(n) = n * silnia(n-1), dla n ≥ 1
Kod programu:
#include <iostream>
using namespace std;
unsigned silnia(unsigned n)
{
if(n == 0) return 1;
else return n * silnia(n - 1);
}
int main()
{
// test:
for(unsigned i = 0; i < 7; ++i)
cout<<"silnia("<<i<<") = "<<silnia(i)<<"\n";
return 0;
}