Predecir la salida del siguiente programa
#include <stdio.h> int f(int n) { if(n <= 1) return 1; if(n%2 == 0) return f(n/2); return f(n/2) + f(n/2+1); } int main() { printf("%d", f(11)); return 0; }
(A) Desbordamiento de pila
(B) 3
(C) 4
(D) 5
Respuesta: (D)
Explicación: En recursiones sucesivas, F(11) se descompondrá en
F(5) + F(6) -> F(2) + F(3) + F(3)
-> F(1) + 2 * [F(1) + F(2)] -> 1 + 2 * [1 + F(1)]
-> 1 + 2 * (1 + 1) -> 5.
Por lo tanto, la opción D es la respuesta correcta, es decir, 5.
Cuestionario de esta pregunta
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA