Escreva uma função recursiva e outra não recursiva para contar o número de elementos na lista
Passo 1
Resumo do enunciado: Precisamos criar duas versões de uma função que conte quantos elementos tem em uma lista: uma usando recursão e outra usando iteração. O conteúdo aqui envolve entender como a recursão trabalha com caso base e passo recursivo, e como o laço (loop) faz a mesma tarefa de forma imperativa.
Passo 2
Entendendo a versão recursiva: para contar uma lista recursivamente, definimos um caso base (lista vazia tem 0 elementos) e, para uma lista não-vazia, somamos 1 (o primeiro elemento) ao resultado da chamada recursiva passando o resto da lista.
Função recursiva (exemplo em Python):
Função recursiva (exemplo em Python):
def contar_recursivo(lista):
# caso base: lista vazia
if lista == []:
return 0
# passo recursivo: 1 + tamanho do resto da lista
return 1 + contar_recursivo(lista[1:])
Passo 3
Entendendo a versão não-recursiva: usamos um contador que começa em zero e percorremos cada elemento da lista, incrementando o contador a cada iteração. Depois retornamos o valor final do contador.
Função não recursiva (exemplo em Python):
Função não recursiva (exemplo em Python):
def contar_iterativo(lista):
contador = 0
for _ in lista:
contador += 1
return contador
Resposta
Função recursiva:
def contar_recursivo(lista):
if lista == []:
return 0
return 1 + contar_recursivo(lista[1:])
Função não recursiva:
def contar_iterativo(lista):
contador = 0
for _ in lista:
contador += 1
return contador