La boucle WHILE
koene2
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
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!
A voir également:
- La boucle WHILE
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Boucle excel sans macro - Forum Excel
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Mise à disposition de boucle locale dédiée ✓ - Forum Freebox
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
2 réponses
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
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
1 584
si r est un multiple de 15, tu peux ajouter 15 à r, tu ne trouveras pas de multiple de 15 entre r et r+15.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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.