2017-07-06 1 views
1
var number = prompt('Input a number!'); 
var n = number; 
    function getList() { 


for (var n = 1; n <= 17; n++) { 


    if (n % 3 == 0 || n % 5 == 0) 
    console.log (n); 
    } 
} 


console.log(getList()); 
console.log((n*(n+1))/2); 

//equation for summation: (n*(n+1))/2 

J'essaie de retourner la somme des nombres divisibles par 3 ou 5 jusqu'à 17. Jusqu'ici, cela fonctionne à moitié; il énumère tous les nombres, mais je ne peux pas trouver un moyen de retourner la somme. J'ai l'équation pour la sommation, mais je ne peux pas trouver un moyen de la mettre pour que cela fonctionne. Comment obtenez-vous l'équation pour référencer la liste au lieu de référencer le nombre entré?javascript - fonctions et équations confusion

La réponse est censée être 60. Une idée? Merci!

+0

Il suffit d'écrire une boucle pour calculer la somme! – Nisarg

+0

la réponse est 60 pour quelle entrée? –

Répondre

0

Deux choses:

  1. juste retour la somme de votre fonction getList

  2. Assurez-vous que votre entrée rapide est converti en entier sinon il sera traité comme une chaîne et votre n*(n+1)/2 auront tort

var number = parseInt(prompt('Input a number!')); 
 
var n = number; 
 

 
function getList() { 
 
    var sum = 0; 
 
    
 
    for (var n = 1; n <= 17; n++) { 
 
    if (n % 3 == 0 || n % 5 == 0) { 
 
     console.log (n); 
 
     sum += n; 
 
    } 
 
    } 
 
    
 
    return sum; 
 
} 
 

 

 
console.log(getList()); 
 
console.log(n, (n*(n+1))/2);

1

var sum = 0; 
 
for (var n = 1; n <= 17; n++) { 
 
    if (n % 3 === 0 || n % 5 === 0) 
 
    sum += n; 
 
} 
 

 
console.log(sum);

1

Utilisez une variable pour ajouter les numéros et le retourner après boucle.

Ci-dessous l'exapmle.

function getList() { 
 
    var sum = 0; 
 

 
    for (var n = 1; n <= 17; n++) { 
 
    if (n % 3 == 0 || n % 5 == 0) { 
 
     sum += n; 
 
    } 
 
    } 
 
    
 
    return sum; 
 
} 
 

 

 
console.log(getList());

+1

C'est de loin la meilleure solution, comme l'OP a demandé * Comment retourner la somme *. Ensuite, utilisez l'instruction 'return'. –

0

Si vous voulez une équation :)

function sumOfNumbersDivisibleBy3Or5(n) { 
 
    const by3 = Math.floor(n/3), 
 
     by5 = Math.floor(n/5), 
 
     by3And5 = Math.floor(n/3/5); 
 

 
    return 3*by3*(by3+1)/2 + 5*by5*(by5 + 1)/2 - 3*5*by3And5*(by3And5 + 1)/2 
 
} 
 

 
console.log(sumOfNumbersDivisibleBy3Or5(17))

0

var number = prompt('Input a number!'); 
 
function getList() { 
 
    var sum = 0; 
 
    for (var n = 1; n <= number; n++) { 
 
    if (n % 3 == 0 || n % 5 == 0) 
 
    sum+=n; 
 
    } 
 
    return sum; 
 
} 
 
console.log(getList());

il retournera somme de tout le nombre qui est divisible par 3 ou 5 entre 1 et numéro entré