Problème python connaitre le nombre de le plus grand

Résolu
Luten -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'aimerais connaître un moyen de récupéré le nombre le plus grand dans une boucle while juste pour le x.

C'est mon programme juste avant:

x = 5
while x != 1:
    if x % 2 == 1:
      x = x * 3 + 1
    else:
      x = x / 2
    print(x)



Je cherche à faire des comparaisons avec les nombres obtenus pour que le programme me dis que le plus grand nombre est 16.


Bien à vous.

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.

Configuration: Windows / Opera 83.0.4254.46
A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
une technique habituelle, c'est de mémoriser le plus grand nombre observé jusqu'à présent.
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Bonjour,

La méthode proposée par yg_be est la plus naturelle et la plus simple.

Une autre manière de faire plus propre serait de distinguer le calcul des termes de ta suite et ce que tu en fais (libre à toi de faire un print à chaque itération, ou de l'envelopper dans la fonction
max()
).

Pour cela il faut simplement envelopper ton calcul de sorte à en faire un générateur, c'est-à-dire quelque chose sur lequel on peut itérer e.g. avec une boucle
for
.

Exemple :

def f():
    x = 5
    while x != 1: 
        if x % 2 == 1: 
            x = x * 3 + 1 
        else:   
            x = x / 2 
        yield x

print("-" * 78)
print(max(f()))
print("-" * 78)
for y in f():
    print(y)


Résultat :

------------------------------------------------------------------------------
16
------------------------------------------------------------------------------
16
8.0
4.0
2.0
1.0


Bonne chance
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
dommage de faire deux itérations.
heureusement, dans ce cas, cela ne coûte presque rien.
0