Python

Répondre


Aide syntaxe LaTeX
Les BBCodes sont activés
[img] est désactivé
[flash] est désactivé
[url] est activé
Les smileys sont désactivés

Revue du sujet
   

Si vous souhaitez joindre un ou plusieurs fichiers, complétez les indications suivantes.

Étendre la vue Revue du sujet : Python

Re: Python

par SoS-Math(25) » sam. 8 févr. 2020 20:44

Bonsoir Cédric,

Tu peux utiliser la balise code pour insérer du code "</>"

J'ai retouché le code pour comprendre plus facilement cette ligne (C'est la même chose):

Code : Tout sélectionner

def DAB(n) :
    if n%10 != 0:
        return "impossible"
    else :
        i = 0
    while n>=20:
        n = n-20
        i = i+1
        billets_20 = i
    
    billets_10 = n//10
    return billets_10,billets_20
A bientôt

Python

par Cédric » sam. 8 févr. 2020 15:11

Bonjour,
un DAB propose de ne distribuer que des billets de 10 ou 20 euros.
Lors d'un retrait, le DAB distribue le moins de billets possibles.
Voici l'algorithme dans le livre :
def DAB(n) :
if n%10!=0:
return "impossible"
else :
i=0
while n>=20:
n,i=n-20,i+1
billets_20=i
billets_10=n//10
return billets_10,billets_20
Je ne comprends pas la ligne n,i=n-20,i+1 et pourtant l'algorithme fonctionne (je viens de le tester !).
Si je prends un exemple : DAB(50).
Pour DAB(50), le reste de 50 par 10 est égal à 0 donc on est dans la boucle else :
tant que n est plus grand que 50, c'est le cas à la première étape,
n vaut 50, i vaut 50-20=30, i vaut 0+1 =1 (d'ailleurs pourquoi i ne serait pas plutôt égal à 30+1 car la valeur précédente de i était 30).
Ensuite billets de 20=1
billets de 10=5 qui est le quotient de 50 par 10.
étape 2 : on a toujours n = 50 ???
Je ne comprends pas ce qu'il se passe à la ligne n,i=n-20,i+1.
J'aurais plutôt mis n,n=n-20,i+1 ???
Merci de votre aide !
C.

Haut