La boucle WHILE
Fermé
koene2
Messages postés
1
Date d'inscription
mardi 26 juin 2018
Statut
Membre
Dernière intervention
26 juin 2018
-
26 juin 2018 à 11:38
yg_be Messages postés 23462 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 février 2025 - 28 juin 2018 à 22:45
yg_be Messages postés 23462 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 février 2025 - 28 juin 2018 à 22:45
je suis débutant en programmation et en python. je dispose du petit exercice suivant:
soient a et b deux bornes entières. je désire écrire un programme qui additionne tous les multiples de 3 et 5 qui se trouvent entre cette borne.
par exemple si a=0 et b=40, j'aimerai que le programme me retourne 45 (en sommant 0+15+30) comme résultat.
la contrainte c'est que je désire que ce soit avec la boucle WHILE et non avec la boucle FOR...IN...
merci!
soient a et b deux bornes entières. je désire écrire un programme qui additionne tous les multiples de 3 et 5 qui se trouvent entre cette borne.
par exemple si a=0 et b=40, j'aimerai que le programme me retourne 45 (en sommant 0+15+30) comme résultat.
la contrainte c'est que je désire que ce soit avec la boucle WHILE et non avec la boucle FOR...IN...
merci!
2 réponses
ubumeun
Messages postés
1
Date d'inscription
dimanche 24 juin 2018
Statut
Membre
Dernière intervention
28 juin 2018
28 juin 2018 à 21:51
28 juin 2018 à 21:51
Bonjour, je pense que cela ne valait pas un post sur un forum mais bon..
Il faut que tu additionnes les multiples de 3 ET 5 (donc les multiples de 15), ou les multiples de 3 OU 5 ?
un exemple avec multiples de 3 et 5 :
S=0
r=a #le "point de départ" est a
while r<=b: #je regarde si je ne vais pas trop loin..
if r%15==0: #je regarde si r est un multiple de 3 et de 5 (donc de 15)
S=S+r #si oui : je l'additionne à ma somme S
r=r+1 #au prochain tour de boucle, je regarderai l'entier suivant (*1)
print(S) #j'affiche S
(*1) : cette ligne est super importante car elle permet de faire terminer l'algorithme càd de ne pas faire "une boucle infini". C'est en fait le gros problème de while comparé à for : for fait un certain nombre de tour de boucle (que l'on détermine dans le "in range") alors que le while attend quelque chose pour s’arrêter... on le lui donne ici en faisant croître r et quand r est plus grand que b : bim ! ça s’arrête !
Il faut que tu additionnes les multiples de 3 ET 5 (donc les multiples de 15), ou les multiples de 3 OU 5 ?
un exemple avec multiples de 3 et 5 :
S=0
r=a #le "point de départ" est a
while r<=b: #je regarde si je ne vais pas trop loin..
if r%15==0: #je regarde si r est un multiple de 3 et de 5 (donc de 15)
S=S+r #si oui : je l'additionne à ma somme S
r=r+1 #au prochain tour de boucle, je regarderai l'entier suivant (*1)
print(S) #j'affiche S
(*1) : cette ligne est super importante car elle permet de faire terminer l'algorithme càd de ne pas faire "une boucle infini". C'est en fait le gros problème de while comparé à for : for fait un certain nombre de tour de boucle (que l'on détermine dans le "in range") alors que le while attend quelque chose pour s’arrêter... on le lui donne ici en faisant croître r et quand r est plus grand que b : bim ! ça s’arrête !
yg_be
Messages postés
23462
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
6 février 2025
Ambassadeur
1 567
28 juin 2018 à 22:43
28 juin 2018 à 22:43
bonsoir, moi j’essaierais plutôt de déterminer quel est le plus petit multiple de 15 supérieur ou égal au premier nombre, ensuite combien il y a de multiples de 15 entre ces deux nombres, et puis calculer leur somme.
28 juin 2018 à 22:45