Afficher la somme des nombres jusqu'à un nombre entré
Fermé
Baptiste16
-
Modifié le 3 avril 2022 à 17:06
mamiemando Messages postés 33433 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 décembre 2024 - 4 avril 2022 à 14:56
mamiemando Messages postés 33433 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 décembre 2024 - 4 avril 2022 à 14:56
A voir également:
- Somme des chiffres d'un nombre python
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Citizen code python avis - Accueil - Outils
- En raison d'un nombre important d'échec de connexion snapchat - Forum Snapchat
4 réponses
mamiemando
Messages postés
33433
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
17 décembre 2024
7 809
Modifié le 4 avril 2022 à 14:57
Modifié le 4 avril 2022 à 14:57
Bonjour
Avant de commencer
Et il faut faire attention à l'indentation, c'est primordial en Python, car en l'état ce code n'a aucun sens. Par ailleurs
Explication du problème
Ensuite regardons ce que fait ton programme :
Méthode 1 : avec une boucle
C'est la méthode sur laquelle tu es partie et que jee pee te propose de corriger.
Pour rappel, en python, on peut sauver le résultat d'un calcul avec l'opérateur d'affectation
Exemple :
Sur ce principe, jee pee te propose d'introduire une variable (disons
Méthode 2 : avec
Python propose une fonction, appelée
Méthode 3 : la méthode "maths"
Cette approche proposée par (proposée par Pierr10) est la meilleure des trois car en obtient le résultat un calcul, alors que les deux méthodes précédentes nécessitent de calculer
En terme de complexité, on dit que le programme calcule le résultat en O(1) alors que les deux méthodes précédentes calculent le résultat en O(n) (donc le coût de calcul croit linéairement avec la valeur de
Pour la réaliser, il suffit pour la réaliser de la formule de maths dans ta fonction python.
Bonne chance
Avant de commencer
Et il faut faire attention à l'indentation, c'est primordial en Python, car en l'état ce code n'a aucun sens. Par ailleurs
returnn'est pas une fonction, donc pas de raison de mettre de parenthèses.
Explication du problème
Ensuite regardons ce que fait ton programme :
- l2 : on itère pour
k
allant de0
inclu àn+1
exclu ; - l3 : on calcule
k + 1
mais on ne fait rien de ce résultat. C'est donc comme si on avait rien fait ; - l4 : on retourne
k + n
. À la fin de la boucle,k
vautn
, donc au final ce programme retourne2 * n
.
Méthode 1 : avec une boucle
C'est la méthode sur laquelle tu es partie et que jee pee te propose de corriger.
Pour rappel, en python, on peut sauver le résultat d'un calcul avec l'opérateur d'affectation
=
Exemple :
s = 3 s = s + 10 # s vaut maintenant 3 + 10 == 13 s = s + 2 # s vaut maintenant 13 +2 == 15
Sur ce principe, jee pee te propose d'introduire une variable (disons
scomme somme), que lui a appelé accumulateur, initialisé à 0, dans lequel tu vas additionner à chaque itération la valeur de
k.
Méthode 2 : avec
sum
Python propose une fonction, appelée
sumqui permet de calculer à partir d'un itérable générant des valeurs numériques sa somme. Je te renvoie à ce lien pour voir comment l'utiliser.
Méthode 3 : la méthode "maths"
Cette approche proposée par (proposée par Pierr10) est la meilleure des trois car en obtient le résultat un calcul, alors que les deux méthodes précédentes nécessitent de calculer
nsommes consécutives.
En terme de complexité, on dit que le programme calcule le résultat en O(1) alors que les deux méthodes précédentes calculent le résultat en O(n) (donc le coût de calcul croit linéairement avec la valeur de
n).
Pour la réaliser, il suffit pour la réaliser de la formule de maths dans ta fonction python.
Bonne chance
Pierr10
Messages postés
12430
Date d'inscription
mardi 13 février 2018
Statut
Modérateur
Dernière intervention
17 décembre 2024
5 148
3 avril 2022 à 19:28
3 avril 2022 à 19:28
Bonjour,
Pour info, la somme des n premiers entiers se calcule avec la formule :
Σ = n(n+1)/2
Par exemple si n = 4
Σ = 4*5/2 = 10
Pour info, la somme des n premiers entiers se calcule avec la formule :
Σ = n(n+1)/2
Par exemple si n = 4
Σ = 4*5/2 = 10
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
3 avril 2022 à 17:07
3 avril 2022 à 17:07
Bonjour,
Commence par lire ceci : https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
puis reviens nous montrer ce que tu as essayé...
Commence par lire ceci : https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
puis reviens nous montrer ce que tu as essayé...
J'ai essayé ceci déjà mais sans grands résultats :
def suitre(n): for k in range(n+1): k+1 return (k+n)
jee pee
Messages postés
40559
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 décembre 2024
9 459
3 avril 2022 à 18:17
3 avril 2022 à 18:17
bonjour, il te faut un accumulateur, initialisé à zéro, pour additionner la valeur de la boucle k à chaque tour.