Considere el siguiente fragmento de programa C en el que i, j y n son variables enteras.
for (i = n, j = 0; i >0; i /= 2, j += i);
Sea val(j) el valor almacenado en la variable j después de la terminación del bucle for. ¿Cuál de las siguientes es verdadera?
(A) val(j) = (logn)
(B) vaI(j) = (raíz cuadrada(n))
(C) val(j) = (n)
(D) val(j) = (nlogn)
(A) A
(B) B
(C) C
(D) D
Respuesta: (C)
Explicación: La variable j es inicialmente 0 y el valor de j es la suma de los valores de i. i se inicializa como n y se reduce a la mitad en cada iteración.
j = n/2 + n/4 + n/8 + .. + 1 = Θ(n)
Tenga en cuenta el punto y coma después del bucle for, por lo que no hay nada en el cuerpo.
Igual que la pregunta 1 de https://www.geeksforgeeks.org/c-language-set-6/
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