Nombre palindrome

Signaler
Messages postés
3
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
23 avril 2003
-
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
-
Est.ce que qqn pourait m'aider ou me faire un soft ki puisse trouver les nombre palindrome par entre 100 et 10000 avec une boucle for??

8 réponses

Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
1
Si je sais exactement ce qu'est un nombre palindrome je pourrais t'aider sans problème !
(c'est des puissances de 10 ?)

Core Breaker :)
Messages postés
3
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
23 avril 2003

un nombre palindrome est un nombre ki se lit dans les 2 sens ex: 2002
Messages postés
252
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
1 mai 2005

1. pour enumerer tous les nombres entre 100 et 10000, le plus simple est de faire une boucle.
2. pour tester si un nombre est un palindrome, tu dois le stocker dans un tableau (un chiffre par case ...). Tu calcules ensuite l'indice du chiffre du "milieu" si il existe.
3. tu compares le permier chiffre et le dernier, le 2eme et l'avant dernier.

envoie moi un mail, ce sera plus simple ...
Messages postés
61
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
18 novembre 2005

j'ai trouvé la solution mais j'arrives pas à envoyer le message !!!

ca fait une 1/2 heure que j'essaye, g trop la haine !!!
:( :( :(
Messages postés
61
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
18 novembre 2005

> > > Est.ce que qqn pourait m'aider ou me faire un soft ki puisse trouver les nombre palindrome par entre 100 et 10000 avec une boucle for??

voici un code testé et qui marche :

#include stdio.h
#include stdlib.h
#include math.h
#include string.h

int main(void)
{
int taille;
int debut;
int palin;
char nombre[6];
for(int i=100; i<=10000; i++)
{
itoa(i, nombre, 10);
taille = strlen(nombre)-1;
debut = 0;
palyn = 0;
for(int j=taille; j>=floor(taille/2); j--)
{
if(nombre[debut] != nombre[j])
{
palin = 0;
break;
}
else
{
palin=1;
debut++;
}
}
if(palin==1) printf("%i\n", i);
}
system("pause");
return 0;
}

Explication sommaire :
on ecrit le nombre dans un char
on récupère sa taille
on boucle sur la deuxième partie du nombre en partant de la fin
si c diférent du début, alors on sort sinon on continue
a la fin, si palin est égal à 0, alors on a fait un break, dc c pas un palindrome, sinon, on l'écrit.

Voila, j'espères que ca va bien t'aider !!!

ca fait une 1 heure que j'essaye d'envoyer ce message, g enfin réussi mais g encore la haine!!!!!! :( :( :(
j'en peut plus de cette page "Erreur d'execution" !!!!!! :( :( :(
Messages postés
3
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
23 avril 2003

merci en effet il fonctionne juste 2-3 ptite erreur du a la copatibilité de l'environnement a+
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
1
Si tu as mis des doubles quotes (guillements) c'est normal.

Core Breaker :)
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
1
for(int i= 100; i < 10000; i++)
{
char s[5];
ostrstream(s, 5) << i;

for(char *deb= s, *fin= s + (strlen(s) - 1); (*deb == *fin) && (deb < fin); deb++, fin--);
if(deb > fin)
cout << i << " est un palindrome" << endl;
}

Core Breaker :)