Scrieti o functie sau o procedura recursiva care implementeaza urmatorul algoritm recursiv :
f(0) = 1;
f(n) = A[n] * f(n-1);
Cum am facut : n=3 A = [2, 7, 5]
f(3) = A[3] * f(2)
f(2) = A[2] * f(1)
f(1) = A[1] * f(0)
Aici nu am inteles un lucru : indexarea tablourilor incepe de la elementul 0, deci A[0] =2, A[1]=7, A[2]=5;
Calculul pe care l-am facut mai sus incepe indexarea tabloului de la A[3] si decrementand, ajunge la elementul A[1];
#include<stdio.h>
int recursiv(int n)
{
int A[n], i;
if(n==0) return 1;
return A[n]*recursiv(n-1);
}
int main()
{
int n, i, A[64];
printf("\n Dati n = ");
scanf("%d", &n);
for(i=0; i<n; i++)
{
printf("\n A[%d] = ", i+1);
scanf("%d", &A);
}
printf("\n %d\n", recursiv(n));
}