PASCAL : exo super relou :(

PASCAL : exo super relou :( - Programmation

Marsh Posté le 13-11-2001 à 16:48:21    

Voila, j'arrive pa a le faire :(
 
Le sujet :
Trouver les entiers positifs n tel que, en calculant n^3 et n^4, on utilise une fois et une seule seulement tous les chiffres de 0 a 9 inclus
 
Merci :hello:

Reply

Marsh Posté le 13-11-2001 à 16:48:21   

Reply

Marsh Posté le 13-11-2001 à 17:12:48    

tu fais une boucle Do while
en incrementant n
et n3=n^3
  n4=n^4
tu transforme n3 et n4 en chaine de caractere
tu fais temp=n3+n4
tu fais :
trouve=1
for i=0 to 9
si tu trouve i dans temp alors  
trouve=trouve*1
sinon
trouve=trouve*0
finsi
fin for
 
si trouve=1 alors c'est bon tu sors de la boucle
 
fin while
 
 
 
tu dois trouver n=18
je sais pas si c'est trés clair ?

Reply

Marsh Posté le 13-11-2001 à 17:27:55    

en VB ou (VBA)c'est facile ça donne ça:
 
 
 
Sub nn()
n = 10
Do
n3 = n ^ 3
n4 = n ^ 4
temp = n3 & n4
trouve = 1
For i = 0 To 9
pos = InStr(temp, i)
If pos = 0 Then
trouve = 0
GoTo continueboucle
Else
trouve = trouve * 1
End If
 
Next
 
continueboucle:
n = n + 1
Loop While trouve = 0
MsgBox (n - 1)
End Sub

Reply

Marsh Posté le 13-11-2001 à 17:31:18    

Beyonder >
 
Sauf erreur de ma part, tu vérifies juste que les nombres contiennent bien tous les chiffres de 0 à 9, pas qu'ils les contiennent 1 et 1 seule fois ...


---------------
Dans le monde, il n'y a que 10 sortes de personnes : ceux qui savent compter en binaire et ceux qui ne savent pas
Reply

Marsh Posté le 13-11-2001 à 19:36:32    

MarvinLeRouge a écrit a écrit :

Beyonder >
 
Sauf erreur de ma part, tu vérifies juste que les nombres contiennent bien tous les chiffres de 0 à 9, pas qu'ils les contiennent 1 et 1 seule fois ...  




 
exacte mais comme tu commence a disons n=10
et que tu incrémente. le premier nombre  
trouvé contient tous les chiffres de 0 a 9
1 seule fois, apres on sort de la boucle.

Reply

Marsh Posté le 13-11-2001 à 20:16:54    

Beyonder a écrit a écrit :

en VB ou (VBA)c'est facile ça donne ça:
 
 
 
Sub nn()
n = 10
Do
n3 = n ^ 3
n4 = n ^ 4
temp = n3 & n4
trouve = 1
For i = 0 To 9
pos = InStr(temp, i)
If pos = 0 Then
trouve = 0
GoTo continueboucle
Else
trouve = trouve * 1
End If
 
Next
 
continueboucle:
n = n + 1
Loop While trouve = 0
MsgBox (n - 1)
End Sub  




 
le Goto c'est de la programmation de porc  :ouch:  :ouch:  :ouch:

Reply

Marsh Posté le 14-11-2001 à 08:35:22    

ddr555 a écrit a écrit :

 
 
le Goto c'est de la programmation de porc  :ouch:  :ouch:  :ouch:  




 
et si tu donnais ta version ce serait plus constructif non ?
pour info ,je n'ai pas cherché a faire de "la belle programmation" mais a aller au plus rapide il faut prendre
ça comme un algo qui fonctionne.
ps: j'attend ta version en C ou en Pascal car
je suis toujours content d'apprendre.
 :jap:  :jap:  :hello:

Reply

Marsh Posté le 14-11-2001 à 12:23:09    

ddr555 a écrit a écrit :

 
 
le Goto c'est de la programmation de porc  :ouch:  :ouch:  :ouch:  




 
Hola !!!
Et pourtant lorsque tu code sur le proc en asm, il y a bien des jmp, non ?
C'est que ça a une certaine utilité donc ...


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 14-11-2001 à 13:42:42    

juju_le_barbare a écrit a écrit :

 
 
Hola !!!
Et pourtant lorsque tu code sur le proc en asm, il y a bien des jmp, non ?
C'est que ça a une certaine utilité donc ...  




 
en assembleur tu n'as pas le choix
en pascal : nada pas de goto  :fou:  :fou:  :fou:  
 
fais ça et tu te feras assassiner  :D

 

[edtdd]--Message édité par ddr555--[/edtdd]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed