Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Lógica para Função Recursiva - avaliação

Olá pessoal. Fiz o código abaixo em JS para soma dos fatoriais de uma lista dinâmica de parâmetros usando recursividade. Está funcionando, mas gostaria de uma avaliação em relação à lógica que montei, se está bem pensada, onde pode ser melhorada, etc... Imagino que esta função não tenha muita utilidade no dia-a-dia, a ideia foi só para praticar. Pensei em fazer uma função para transformar número em ordinal mas encontrei uma já criada, então instalei e utilizei. Desde já agradeço a atenção. Glauber

require("ordinal-pt-br") let fatorialTotal = 0 let indice = 0

function somaFatorial () { const parms = [].slice.call(arguments, 0) if (parms.length === 0) { console.log(nenhum parâmetro informado) fatorialTotal = null return fatorialTotal } let fatorTotal = 0 for (let i = 0; i < parms.length; i++) { num = parms[i] let total = calculaFatorial(num) indice = i + 1 console.log(o fatorial do ${indice.toOrdinal()} parâmetro (${num}) é = a ${total}) fatorialTotal = fatorialTotal + total } console.log() console.log(a soma dos fatoriais é igual a : ) return fatorialTotal }

function calculaFatorial (num) { if (num < 1) return 1 else return num * calculaFatorial (num - 1) }

console.log(somaFatorial(6, 4, 5, 2, 3))

O resultado é: PS C:\Glauber\Alura\Javascript\codigo-curso> node aula-2/fatorial.js o fatorial do primeiro parâmetro (6) é = a 720 o fatorial do segundo parâmetro (4) é = a 24 o fatorial do terceiro parâmetro (5) é = a 120 o fatorial do quarto parâmetro (2) é = a 2 o fatorial do quinto parâmetro (3) é = a 6

a soma dos fatoriais é igual a : 872

1 resposta
solução!

Oi Glauber, tudo bem?

Parabéns pelo código, você conseguiu implementar uma função recursiva para calcular a soma dos fatoriais de uma lista dinâmica de parâmetros. Sua lógica está bem pensada e funcionando corretamente.

E você conseguiu atingir o objetivo de praticar a recursividade, o que é muito bom!

Continue praticando e explorando novos desafios!

Um abraço e bons estudos.