Preguntas de práctica para la recursividad | conjunto 2

Explique la funcionalidad de las siguientes funciones. 

Pregunta 1 

C++

/* Assume that n is greater than or equal to 1 */
int fun1(int n)
{
    if (n == 1)
        return 0;
    else
        return 1 + fun1(n / 2);
}

Java

/* Assume that n is greater than or equal to 1 */
static int fun1(int n)
{
    if (n == 1)
        return 0;
    else
        return 1 + fun1(n / 2);
}

Python3

# Assume that n is greater than or equal to 1 */
def fun1(n):
    if(n == 1):
        return 0
    else:
        return 1 + fun1(n//2)

C#

/* Assume that n is greater than or equal to 1 */
static int fun1(int n)
{
    if (n == 1)
        return 0;
    else
        return 1 + fun1(n / 2);
}

Javascript

<script>
 
/* Assume that n is greater than or equal to 1 */
function fun1(n)
{
    if (n == 1)
        return 0
    else
        return 1 + fun1(Math.floor(n / 2))
}
</script>

Respuesta: La función calcula y devuelvelog2piso

Por ejemplo, si n está entre 8 y 15, fun1() devuelve 3. Si n está entre 16 y 31, fun1() devuelve 4.

Pregunta 2 

C++

/* Assume that n is greater than or equal to 0 */
void fun2(int n)
{
if(n == 0)
    return;
 
fun2(n/2);
cout << n%2 << endl;
}

C

/* Assume that n is greater than or equal to 0 */
void fun2(int n)
{
  if(n == 0)
    return;
 
  fun2(n/2);
  printf("%d", n%2);
} 

Java

/* Assume that n is greater than or equal to 1 */
static void fun2(int n)
{
if(n == 0)
    return;
  
fun2(n/2);
System.out.println(n%2);
}

Python3

# Assume that n is greater than or equal to 0 */
def fun2(n):
    if(n == 0):
        return
     
    fun2(n // 2)
    print(n % 2, end="")

C#

void fun2(int n)
{
if(n == 0)
    return;
   
fun2(n/2);
Console.Write(n%2);
}

Javascript

<script>
 
// Assume that n is greater than or equal to 1
function fun2(n)
{
    if (n == 0)
        return;
     
    fun2(Math.floor(n / 2));
    document.write(n % 2 + " ")
}
</script>

Respuesta: La función fun2() imprime el equivalente binario de n. Por ejemplo, si n es 21, fun2() imprime 10101. 

Nota: Las funciones anteriores son solo para practicar la recursividad, no son la implementación ideal de la funcionalidad que brindan. 

Escriba comentarios si encuentra alguna de las respuestas/códigos incorrectos. 

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 *