Informática, perguntado por lucas27484, 7 meses atrás

Crie uma função soma_aninhada que receba uma lista de objetos L e retorna a soma de todos os elementos de todas as listas aninhadas. A lista L pode conter até 50 objetos, que podem ser:

Números inteiros
Listas de números inteiros
Listas de listas de números inteiros

Entrada:

Não há entrada. O parâmetro da função é uma lista de números.


Saída:

A função deve retornar a soma dos elementos.

Notas:

No primeiro exemplo de teste, a soma de todos os números na lista é igual a 6.
No segundo exemplo de teste, a soma dos números em cada objeto (números sozinhos e no interior das listas) é igual 9.

Anexos:

Soluções para a tarefa

Respondido por GeBEfte
3

A função mostrada abaixo utiliza recursividade e, portanto, irá efetuar o somatório independente do número de listas aninhadas, desde que respeitado o limite de recursões (profundidade).

[Python]

\sf de f~ soma\underline{~}aninhada(lst):\\~~~~  soma~=~0\\  ~~~~for~ i~ in~ lst:\\    ~~~~~~~~if~ type(i)~==~list:\\~~~~~~~~~~~~      soma~ +=~ soma\underline{~}aninhada(i)\\~~~~~~~~    else:\\~~~~~~~~~~~~      soma~ +=~ i\\~~~~  return~ soma

Observações: É importante destacar que esta solução não oferece a melhor alternativa, principalmente quando analisados o tempo e a memória utilizados na execução comparado a outra que utilizando laços, por exemplo.

\Huge{\begin{array}{c}\Delta \tt{\!\!\!\!\!\!\,\,o}\!\!\!\!\!\!\!\!\:\,\perp\end{array}}Qualquer~d\acute{u}vida,~deixe~ um~coment\acute{a}rio

Perguntas interessantes