Algoritmos | Recursividad | Pregunta 6

Salida del siguiente programa?

#include<stdio.h>
void print(int n)
{
    if (n > 4000)
        return;
    printf("%d ", n);
    print(2*n);
    printf("%d ", n);
}
  
int main()
{
    print(1000);
    getchar();
    return 0;
}

(A) 1000 2000 4000
(B) 1000 2000 4000 4000 2000 1000
(C) 1000 2000 4000 2000 1000
(D) 1000 2000 2000 1000

Respuesta: (B)
Explicación: La primera vez que n=1000
imprime la función 1000 es luego llame a print (2 * 1000) y luego nuevamente imprima 2000 mediante la función printf, luego llame a print (2 * 2000) e imprima 4000 la próxima vez que se llame a print (4000 * 2).

Aquí 8000 es mayor que 4000, la condición se vuelve verdadera y regresa a la función (2 * 4000). Aquí n = 4000, luego 4000 se imprimirá nuevamente a través de la segunda impresión.

De manera similar, imprima (2 * 2000) después de eso n = 2000, luego 2000 se imprimirá y volverá a imprimir (2 * 1000) aquí n = 1000, así que imprima 1000 hasta la segunda impresión.

La opción (B) es correcta.
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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *