Informatique

Question

Bonjour, je suis en 1er spécialité NSI (numérique ), le programme(en python ) ci-dessous doit permettre de trouver les nombres dit "idiots"

Et on doit complétez l'algo suivant

x1=int(input())


x2=int(input())


i=x1


while (i>=x1 and i<=x2):


nb=i


??????????????????????


while (nb>0):


r=nb%10


nb=nb//10


s += r*r*r


if (i==s):


print(s)


i=i+1

Merci d'avance, je vous serais très reconnaissant
Bonjour, je suis en 1er spécialité NSI (numérique ), le programme(en python ) ci-dessous doit permettre de trouver les nombres dit idiots Et on doit complétez l

1 Réponse

  • Réponse :

    Salut, le truc est tout bête en faite. Ou tu as mis les points d'interrogation il faut rajouter "s=0".

    Le code donne:

    x1=int(input())

    x2=int(input())

    i=x1

    while (i>=x1 and i<=x2):

       nb=i

       s=0

       while (nb>0):

           r=nb%10

           nb=nb//10

           s += r*r*r

           if (i==s):

               print(s)

       i=i+1

    Explications :

    On voit bien que dans ta 2ème boucle, on fait appel à une variable "s".

    Quand je prends ce morceau de code "s += r*r*r", c'est comme si je faisais s = s + (r*r*r) [s est égal à la valeur actuel de s plus r fois r fois r], hors s n'a pas de valeur par défaut, et n'est pas défini au par avant.

    Donc il faut définir la variable "s", on ne ta pas donné de valeur par défaut pour "s", donc on va partir du principe que "s" commence à 0. Mais attention, on a besoin de cette variable "s" uniquement dans la dernière boucle, dans ce cas on doit savoir ou la positionné, bah on va la mettre juste avant le commencement de la première boucle.