Problème avec Programmation Python

Par reewan31, il y a 3 ans


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 !

3 réponses

Kareylo, il y a 3 ans

Je penses fortement que tu te complique fortement la tâche

  • A quoi te sert ta variable n ?
  • Pourquoi t'amuser à mettre ta puissance sur cette variable n pour essayer tant bien que mal à la mettre à la racine carré ou cube ? Si tu veux garder ta variable n,
    soit utilise une autre variable pour le résultat (pow = n ** 2), ça t'évitera des problèmes de reste de divisions non voulus (d'où ton résultat pas rond)
    soit met le résultat directement dans ton addition de sum. (sum = sum + (n ** 2))
  • Pourquoi ne pas utiliser l'itération de ta boucle pour faire ta puissance directement ?
  • Fait attention, ton range va s'arrêter à la 100ème itération, et donc à 99 car il commence à 0, pense à passer à un range(101)

Si tu continues à bloquer, je te donnerai la réponse réellement attendue par l'exercice

jflalle, il y a 3 ans

result = 0

l'itérateur range s'arrête à la dernière valeure exclue

for 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 + x
3
print(result)

jflalle, il y a 3 ans

comment on publie du code proprement ici ? Mes indentations et les puissances sont parties... il saura les remettre.