Bonjour, j'essaye depuis maintenant plus d´une heure de répondre à la question ci-dessous avec le programme suivant ( je suis obligé d'utiliser une loop et une condition ) :
n = 0
sum = 0
for x in range(100):
if n % 2 == 0:
n = n ** 2
sum = sum + n
n = n ** 0.5
n = n + 1
else:
n = n ** 3
sum = sum + n
n = n ** (1 / 3)
n = n + 1
print(sum)
Voici ce qui m'est demandé :
We want to calculate the sum: 0^2+1^3+2^2+3^3+4^2+...+99^3+100^2; that is, the even numbers squared and the odd numbers cubed.
Use a for loop and conditional statement to calculate the sum and print it.
Le résultat attendu est : 12669200
Seulement, voici la valeur que j'obtiens : 24502447.99999938
Quelqu'un saurait-il me donner un petit coup de pouce ? Merci d'avance !
Je penses fortement que tu te complique fortement la tâche
n
?n
pour essayer tant bien que mal à la mettre à la racine carré ou cube ? Si tu veux garder ta variable n
,pow = n ** 2
), ça t'évitera des problèmes de reste de divisions non voulus (d'où ton résultat pas rond)sum
. (sum = sum + (n ** 2)
)range(101)
Si tu continues à bloquer, je te donnerai la réponse réellement attendue par l'exercice
result = 0
l'itérateur range s'arrête à la dernière valeure excluefor x in range(101): # range(101) et pas 100, va jusqu'à 100 inclus
if x % 2 == 0:
result = result + x2 # ici il faut utiliser x et pas n (supprimé)
else:
result = result + x3
print(result)
comment on publie du code proprement ici ? Mes indentations et les puissances sont parties... il saura les remettre.