¿Cuál es la salida impresa por el siguiente programa?
#include<stdio.h> int f(int n, int k) { if (n == 0) return 0; else if (n % 2) return f(n/2, 2*k) + k; else return f(n/2, 2*k) - k; } int main () { printf("%d", f(20, 1)); return 0; }
(A) 5
(B) 8
(C) 9
(D) 20
Respuesta: (C)
Explicación:
f(20,1) = 9. f(10,2) - 1 = 9 f(5,4) - 2 = 10 f(2,8) + 4 = 12 f(1,16) - 8 = 8 f(0,32) + 16 = 16
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