Ex 5.5 : Différence entre versions

De TravauxIndse
Ligne 1 : Ligne 1 :
==Énoncer de l'exercice :==
+
==Énoncé de l'exercice :==
 
Une légende de l’Inde ancienne raconte que le jeu d’échecs a été inventé par un vieux
 
Une légende de l’Inde ancienne raconte que le jeu d’échecs a été inventé par un vieux
 
sage, que son roi voulut remercier en lui affirmant qu’il lui accorderait n’importe quel
 
sage, que son roi voulut remercier en lui affirmant qu’il lui accorderait n’importe quel

Version du 4 avril 2011 à 13:34

Énoncé de l'exercice :

Une légende de l’Inde ancienne raconte que le jeu d’échecs a été inventé par un vieux sage, que son roi voulut remercier en lui affirmant qu’il lui accorderait n’importe quel cadeau en récompense. Le vieux sage demanda qu’on lui fournisse simplement un peu de riz pour ses vieux jours, et plus précisément un nombre de grains de riz suffisant pour que l’on puisse en déposer 1 seul sur la première case du jeu qu’il venait d’inventer, deux sur la suivante, quatre sur la troisième, et ainsi de suite jusqu’à la 64e case. Écrivez un programme Python qui affiche le nombre de grains à déposer sur chacune des 64 cases du jeu. Calculez ce nombre de deux manières : 1)le nombre exact de grains (nombre entier) ; 2)le nombre de grains en notation scientifique (nombre réel).

Solutions de cet exercices :

  • Solution de Cyril Dewez :
a,b=1,1
while b<65:
   print ("case ",b," : ",a,"grain(s)")
   print ("case ",b," : ",float(a),"grain(s)")
   a,b=a+a,b+1
  • Solution de Kévin Detaille :
a,b=1,1
while a<2**64:
   print(int(a),float(a))
   a=a*2
  • Solution de Gérard Swinnen :
n = 1       # numéro de la case 
g = 1       # nombre de grains à y déposer 
# Pour la variante, il suffit de définir g comme <float> 
# en remplaçant la ligne ci-dessus par :  g = 1. 
while n < 65 : 
   print(n, g) 
   n, g = n+1, g*2