how para rastrear una función recursiva C ++
#include <iostream>
using namespace std;
int g(float A[] , int L , int H)
{
if (L==H)
if (A[L] > 0.0)
return 1;
else
return 0;
int M = (L+H)/2;
return g(A,L,M)+ g(A,M+1,H);
}
int main (void)
{
float A[] = {-1.5 ,3.1,-5.2,0.0};
g(A,0,3);
system ("pause");
return 0;
}
me pregunta qué devuelve la función gy qué hace la función
aquí es lo que tengo hasta ahora
la primera llamada es g (A, 0, 3) -total omita la instrucción IF y M = 1 ya que es un int -return g (A, 1,3) + g (A, 2 3)
segunda llamada - g (A, 1,3) omita la instrucción if nuevamente - M = 0; - g (A, 2 3) omita la instrucción if nuevamente - M = 2;
tercera llamada -g (A, 0,0,) devuelve 0 -g (A, 3,3) devuelve 0;
¿entonces solo devuelve 0?
¿y supongo que está dividiendo el valor medio y algún tipo de búsqueda binaria?