-3
votes

Pourquoi cette boucle est-elle exécutée mais produise la réponse incorrecte?

cobalt-60, une forme radioactive de cobalt utilisé dans la thérapie cancéreuse, se décompose sur une période de temps. Chaque année, 12% du montant présent au début de l'année aura une carie décomposée. Si un conteneur de cobalt-60 contient initialement 10 grammes, déterminez la quantité restante après cinq ans.

Le code que j'ai utilisé est: xxx

La sortie est de 8,8 quand je l'exécute. Il devrait être 5.28. Qu'est-ce que je manque?


5 commentaires

Cela ne sera exécuté qu'une fois car dès que vous décrémentez cobalt_life ce n'est plus10


Dans la toute première itération, cobalt_life devient 8.8. Dans la prochaine itération, pendant que vérifie la boucle s'il en est toujours 10, mais comme il est 8.8, rompre et se déplace pour imprimer.


Parce que pendant que cobalt_life == 10: ne peut pas être vrai après la réduction de la boucle, même une seule fois


Si je le change à <10, je n'ai toujours pas la réponse comme 5.28


Il commence à 10 , donc vous n'entrez même jamais la boucle car 10 n'est pas inférieur à 10


3 Réponses :


2
votes

Utiliser pour boucle à la place: xxx

édité

si vous souhaitez utiliser boucle: xxx


2 commentaires

Je sais comment exécuter avec la boucle, mais j'essaye avec la boucle parce que je suis faible dedans


@Jot ajouté pendant que version en boucle aussi



0
votes

sur le deuxième passage de la boucle tandis que COBALT_LIFE n'est plus 10 (depuis le premier passage, il l'a changé) Vous voulez faire la condition de votre boucle l'année et ne l'incrémentez que par 1 sur chaque boucle.


0 commentaires

0
votes

Immédiatement après votre première itération, cobalt_life n'est plus égal à 10 . La condition étant false , la boucle se termine. Si vous voulez une boucle, vous devez incrémenter votre an jusqu'à ce qu'il atteigne 5 .

Bien que le calcul que vous essayez de faire ne nécessite pas de boucle à Tout, mais devrait plutôt être atteint à l'aide de l'exponentiation. xxx


0 commentaires