Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1179 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Nombre palindrome

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Nombre palindrome

n°1342448
nemesis00
Posté le 09-04-2006 à 17:03:07  profilanswer
 

Bonjour  
j'ai un nombre (que je ne peux pas prendre comme chaine de caractère)  
et je dois savoir si c'est un palindrome ou pas.  
j'ai tout d'abord crée une fonction qui calcule le nombre de chiffre qui constitue le nombre donnée,ensuite une autre qui tire chaque chiffre en divisant succesivement par les puissance de 10 (en fonction de sa place)  
et le compare a son symetrique.  
si vous avez compris quelque chose,est ce qui il n'y aurait pas une autre methode plus simple (j'ai entendu parler d'inverser le nombre.....)  
si vous pouvez m'aider merci d'avance.

mood
Publicité
Posté le 09-04-2006 à 17:03:07  profilanswer
 

n°1342700
nargy
Posté le 10-04-2006 à 01:55:43  profilanswer
 

joli problème mathématique.
 

Code :
  1. // retourne le nombre de chiffres d'un nombre
  2. fonction nombreDeChiffres(nombre: entier positif) retourne entier positif
  3. faire
  4.   retourne ceil(log10(nombre));
  5. fait
  6. // retourne un chiffre d'un nombre
  7. fonction extraireChiffre(nombre: entier positif, numero: entier positif) retourne entier positif
  8. faire
  9.   retourne (nombre%(10**(numero+1)))/(10**numero);
  10. fait
  11. fonction estPalindrome(nombre: entier positif): retourne booléen
  12. faire
  13.   nb_chiffres: entier positif;
  14.   nb_comparaisons: entier positif;
  15.   nb_chiffres:=nombreDeChiffres(nombre);
  16.   nb_comparaisons:=nb_chiffres/2; // division entière
  17.   // comparer les premiers chiffres avec les derniers
  18.   // si nb_chiffres==1, nb_comparaisons==0, ne boucle pas
  19.   pour i de 0 à nb_comparaisons
  20.   faire
  21.     si extraireChiffre(nombre,i) != extraireChiffre(nombre,nb_chiffres-1-i)
  22.     alors retourne faux;
  23.   fait
  24.   retourne vrai;
  25. fait

n°1343446
dividee
Posté le 10-04-2006 à 18:57:38  profilanswer
 

C'est quand-même plus simple en inversant le nombre...

Code :
  1. fonction estPalindrome(nombre: entier positif): retourne booléen
  2. faire
  3.   nb: entier positif
  4.   nbInversé: entier positif
  5.  
  6.   nb := nombre
  7.   nbInversé := 0
  8.   tant que nb > 0 faire
  9.     nbInversé := nbInversé * 10 + (nb modulo 10)
  10.     nb := nb / 10
  11.   fait
  12.   retourne (nombre = nbInversé)
  13. fait



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Nombre palindrome

 

Sujets relatifs
[RESOLU] question tres simple sur nombre de caracteres a l'ecritureProbleme -> Nombre de jours d'une Date à Aujourdhui ?
nombre d'occurence[VBA][Excel][Resolu]Connaitre le nombre de ligne d'une colonne
Comment calculer le nombre de pages selon une division par 10 ?Ajout bizarre d'un nombre de caractères !
Nombre d'enregistrement sur une requetteVB compter le nombre de valeur
Matcher un nombre inconnu d'arguments[Résolu]Compter le nombre de caractère d'une ligne d'un fichier
Plus de sujets relatifs à : Nombre palindrome


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR