Tom's Guide > Forum > Programmation > aidez moi en algo svp

aidez moi en algo svp

Forum Programmation : aidez moi en algo svp

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Ecrire en langage algorithmique un programme pour trouver (c'est à dire faire ecrire) tous les nombres compris entre 1 et 999, qui sont égaux à la somme des cubes de leurs chiffres.
Il ya par exemple 370 et 371,car 370=3^3+7^3+0^3=370

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Code :
  1. ENTIER n,i,j,k
  2. DEBUT
  3. POUR n DE 1 A 999 FAIRE
  4.   i <- n DIV 100
  5.   j <- (n - (i * 100)) DIV 10
  6.   k <- n - (i*100) - (j*10)
  7.   SI n = i^3 + j^3 + k^3 ALORS
  8.     ECRIRE n
  9.   FIN SI
  10. FIN POUR
  11. FIN


Répondre à coca25

Déjà, il faut écrire ça en mathématique formelle:
on prend le nombre n=(xyz)[base 10]
alors n = 100*x + 10*y + z

L'équation que tu donnes, est:
n = x^3 + y^3 + z^3

Donc, 100*x + 10*y + z = x^3 + y^3 + z^3

Voilà, on se retrouve avec une équation qui peut permettre de limiter le domaine de recherche, notamment en calculant z en fonction de (x, y). Après il faut voir si le temps gagné dans les boucles (facteur 10) n'est pas perdu dans le temps du calcul supplémentaire.
Bref, il faut calculer les complexité des 2 algorithmes et prendre le plus performant.
Pour 1000 boucles, je ne pense pas que ceci soit bien utile s'il n'y a que ça à faire. Tout dépend de jusqu'où tu veux aller dans l'optimisation :D

Répondre à CRicky
Tom's Guide > Forum > Programmation > aidez moi en algo svp
Aller à :

Il y a 2226 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens