0
votes

Comment pourrais-je écrire chaque numéro individuel ainsi que le symbole d'astérisque lors du calcul du factoriel d'un nombre?

Je suis bloqué sur un problème qui me nécessite d'afficher le fonctionnement complet d'une fonction factorielle, par exemple si l'utilisateur souhaitait s'entraîner 6!, je devrais afficher: 6 * 5 * 4 * 3 * 2 * 1 = 720. Devrais-je utiliser un tableau pour telle?

C'est ce que j'ai jusqu'à présent afin d'entraîner la valeur factorisée de tout numéro donné par l'utilisateur, bien que cela ne génère que la valeur finale et non Développé de travail comme je l'ai montré ci-dessus:

(le numéro de variable contient l'entrée de l'utilisateur); xxx

Toute aide sur ceci serait appréciée! < / p>


1 commentaires

Avez-vous besoin de conserver factorizfunction tel quel?


3 Réponses :


0
votes

Utiliser mappe code> et joindre code> Méthodes.

p>

const factorString = num => {
    const nums = new Array(num).fill(0).map((_, i) => num - i);
    let res = 1;
    nums.forEach(x => res *= x);
    return `${nums.join(' * ')} = ${res}`;
}

console.log(factorString(6))


0 commentaires

2
votes

Une option est, sur chaque itération, appuyez sur une matrice qui est transmise à travers l'appel récursif (ou créé sur l'appel initial). À la fin, renvoyez le tableau, rejoint par * code>, ainsi que la somme du tableau:

p>

<div id="factorialTest"></div>


0 commentaires

0
votes

Vous pouvez modifier la signature de retour de la fonction et vous attendre à un tableau d'une matrice avec les facteurs et le produit.

p>

function factorize(number) {
    if (number === 0 || number === 1) return [[1], 1];
    var [factors, product] = factorize(number - 1);
    return [[...factors, number], product * number];
}

console.log(factorize(5));


0 commentaires