0
votes

Ajouter des chiffres d'un nombre ensemble et renvoyer la somme

Une question de devoirs que j'ai besoin d'aide pour.

Je dois trouver la somme du nombre ajouté ensemble. xxx

La réponse doit être basique en considérant qu'il s'agit d'un débutant JavaScript.


2 commentaires

La question postée ne semble pas inclure Toute tentative pour résoudre le problème. Stackoverflow s'attend à ce que vous soyez Essayez de résoudre votre propre problème Premier , comme vos tentatives nous aident à mieux comprendre ce que vous voulez. Veuillez modifier la question pour montrer ce que vous avez essayé, afin d'illustrer un barrage routier spécifique que vous rencontrez dans un Minimal reproductible Exemple . Pour plus d'informations, s'il vous plaît voir Comment demander et prendre le Tour .


Qu'en est-il des nombres négatifs?


4 Réponses :


3
votes

Tournez le numéro en une chaîne avec Tostring code>, Split code> IT et Réduire Code> Le tableau:

P>

function getSumOfDigits(num) {
  return [...num.toString()].reduce((acc, curr) => +acc + +curr);
}

console.log(getSumOfDigits(42));
console.log(getSumOfDigits(103));


1 commentaires

ou .ReRuce (((ACC, COUR) => + ACC + + COUR) (une itération de moins)



2
votes

Vous pouvez passer au-dessus du nombre de diviser par 10 et utiliser le module 10 pour extraire le dernier chiffre:

p>

function getSumOfDigits(num) {
    let sum = 0;
    while (num > 0) {
        sum += (num % 10);
        num = Math.floor(num / 10);
    }
    return sum;
}

console.log(getSumOfDigits(42))
console.log(getSumOfDigits(102))


1 commentaires

C'est une bonne approche imo au lieu de passer à la chaîne que de scinder que de boucler et de retourner à nouveau en chiffres. +1



2
votes

Vous pouvez modulus (%) 10 pour obtenir le dernier chiffre.Tren, ajoutez ce chiffre à la somme. Après avoir ajouté à la somme, comprenez le dernier chiffre de la valeur.

p>

var value = 123456,
    sum = 0;

while (value) {
    sum += value % 10;
    value = Math.floor(value / 10);
}

console.log(sum);


0 commentaires

1
votes

Vous pouvez utiliser une approche récursive en prenant le dernier numéro de l'appel code> Num code> chaque appel et l'ajout avec un appel à la somme des entiers de 0 à N-1 (où n code> est la quantité de chiffres dans le numéro)

Voir l'exemple ci-dessous: P>

getSumDigits(1) = 1

getSumOfDigits(10) = 0 + getSumDigits(1) 1 = 1

getSumOfDigits(103) = 3 + getSumDigits(10) 1 = 4 


0 commentaires