-2
votes

Comment trouver des multiples de 3 et 5, appuyez sur une matrice, puis résumez le tableau

J'essaie de résumer les multiples de 3 et 5 qui sont inférieurs à 1000 à l'aide de chaque , puis appuyez sur pour les stocker tout dans le tableau multiples < / code>. J'essaie d'apprendre à utiliser ces commandes, et je ne veux donc pas utiliser Sélectionnez et injecter .

J'ai des contrôleurs configurés pour imprimer @Your_Ooutput sur une autre page et avez-vous fait cela avec succès avec des problèmes plus simples. J'ai essayé de faire le conditionnel et de le stocker dans div : xxx

avec ce code, je reçois une erreur.

ici est la solution qui a fonctionné pour moi: xxx


5 commentaires

Quelle erreur avez-vous obtenu


Je pense que vous devez définir DIV en dehors de chaque boucle


Qu'est-ce que rendu ?


Essayez 1000. fois.inject (0) {| m, a | m + = a si (A% 3 == 0 || A% 5 == 0); m}


Si vous avez résolu le problème dans la question, veuillez le transformer en une réponse automatique en utilisant le formulaire ci-dessous.


3 Réponses :


0
votes

Un moyen plus facile de le faire serait comme suit ...

multiples.push(div) if num % 3 == 0 or num % 5 == 0


0 commentaires

0
votes

Vous avez quelques problèmes. D'abord, vous essayez d'accéder à div en dehors du bloc bloc . Si vous vouliez vraiment faire cela, ce que vous n'avez pas parce que vous devriez appeler somme sur multiples , pas div , vous auriez besoin de Définissez-le au niveau de la portée de la méthode, puis autorisez le bloc chaque pour le modifier.

second, vous devez appuyer sur num pas DIV à multiples .

troisièmement, vous devez vérifier si div est vrai avant de passer au tableau.

Je n'ai pas vérifié Le reste de votre logique peut donc y avoir d'autres insectes aussi. xxx


1 commentaires

Comme mentionné dans une autre réponse, vous n'avez pas besoin de convertir la gamme en une matrice, mais cela ne casse pas votre programme, et oui, vous pouvez simplifier les choses plus éloignées, par exemple en supprimant la variable de div et à tout faire sur une ligne, mais Si vous aimez avoir la ligne DIV pour la lisibilité, il n'y a rien de mal avec cela non plus.



0
votes

Vous devez ajouter num à multiples si num est à la fois divisible par 5 et 3 , pas div . C'est parce que div = num% 3 == 0 || Num% 5 == 0 est juste true ou false , l'ajout de divinaire finit par un tableau de valeurs de booléens ( [false, vrai, vrai , ...] ).

@Your_Output = div.sum est en dehors de la boucle et de la division n'existe pas là-bas, il est hors de portée.

Même si dans la portée, vous appelez @Your_Output = true.sum (ou false.sum ) Obtenir une erreur quand même: nométhoderror . / p>

La variable div n'est pas requise, utilisez simplement son état. Il n'est pas nécessaire de convertir la plage en un tableau . Donc, je suggérerais ce refacteur: xxx

Ceci peut être encore raccourci: xxx


1 commentaires

J'ai amélioré l'explication