Problème python connaitre le nombre de le plus grand
Résolu
Luten
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 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:
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.
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
2 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
une technique habituelle, c'est de mémoriser le plus grand nombre observé jusqu'à présent. -
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 fonctionmax()
).
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 bouclefor
.
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