Bonjour,
Existe t-il une formule qui calcul les nombres palindrome ?
Merci...
Bonjour,
Existe t-il une formule qui calcul les nombres palindrome ?
Merci...
bien le bonjour,Envoyé par casafa
qu'entends-tu par 'une formule' ? tu cherches un algo qui determine si un nombre donne est bien un nombre palindrome ? ou bien cherches-tu a obtenir tous les nombres palindromes compris en deux bornes ? carrement autre chose ?
Je cherche a obtenir tous les nombres palindromes compris entre 0 et n.
et quel est le point qui te pose probleme ?
le point 'delicat' de cet algo est de determiner si un nombre precis est palindrome ou pas. Une fois que cette fonction est ecrite, il suffit de boucler entre 0 et n.
comment verrais-tu cet algo ?
soumets-nous tes idees et on pourra t'aider
Je partirais de la liste 0, 1, ..., 9 baptisée S1; s'ils sont considérés comme des palindromes, on les conserve dans la liste.
Puis de la liste 11, 22, ... 99 (baptisée S2)
à partir de la liste S2n on peut créer des palindromes en ajoutant n'importe quel élément de S1 au milieu, ce qui fabrique la liste S2n+1
à partir de la liste S2n on peut créer des palindrome en ajoutant n'importe quel palindrome de la liste S2 + {00} au milieu, ce qui fabrique la liste S2(n+1)
On élimine à chaque tour les nombres > limite.
On boucle jusque'à ce que le plus petit palindrome fabriqué soit plus grand que la limite.
[Edit] J'avais oublié d'ajouter le 00[/Edit]
J'affirme péremptoirement que toute affirmation péremptoire est fausse
5ième élément : barde-prince des figures de style, duc de la synecdoque
Je ne réponds jamais aux questions techniques par MP
Salut,
moi je verifierais que le nombre a l'envers est egal au nombre a l'endroit
ou l'inverse serait : envers(123) = 321
donc pour un palindrome ca donne envers(919) = 919
puis tu parcours 0 a n
XXiemeciel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 pour i de 0 a n : si envers(i) == i: //palindrome sinon // pas palindrome
XXiemeciel
J'ai realisé cela en java et je m'y connais pas trop en algorythme, donc je vais essayer de t'expliquer comment je m'y suis pris :
ensuite on arrivera donc à un tableau contenant tout les palindromes entre a et b dans l'ordre croissant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 pour chaque i de a à b pour chaque chiffre dans i de o jusqu'au nombre de chiffres de i on met le premier chiffre dans une chaine 1 on met le dernier chiffre dans une chaine 2 si chaine 1 = chaine 2 on stocke le i dans un tableau on change l'index du tableau
Etudier tous les nombres pour vérifier si ce sont des palindromes si n = 999999999, cela fait 1 milliard de vérifications, alors qu'il y a que 100 000 palindromes à générer !
J'affirme péremptoirement que toute affirmation péremptoire est fausse
5ième élément : barde-prince des figures de style, duc de la synecdoque
Je ne réponds jamais aux questions techniques par MP
Salut,
Oui tu as raison Mediat, je proposais juste un algo plus simple au cas ou.
Sinon ton algo m'a l'air tres bon.
XXiemeciel
XXiemeciel
tu veut dire la liste S1n+1 non?Envoyé par Médiat
Méphistophélès
Si la solution ne résout pas votre problème, changez le problème...
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Non, c'est bien S2n+1 :
S1 = 0;1;2;...;9
S2 = 11;22;33...;99
S3 =101;111;121...;191; 202; 212;...999
S4 = 1001;1111; 1221; 1331;... 2002;2112;2222; 9999
etc.
S2n ¤ S1 = S2n+1
S2n ¤ (S2+00) = S2(n+1)
J'affirme péremptoirement que toute affirmation péremptoire est fausse
5ième élément : barde-prince des figures de style, duc de la synecdoque
Je ne réponds jamais aux questions techniques par MP
On peut aussi créer les palindromes brutalement :
Soit n le nombre de chiffres maxi
Exemple si n = 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Pour i = 1 à n on génère tous les nombres de floor(i/2) chiffres ne commençant pas par 0. si i est pair on fabrique 1 palindrome en écrivant à la suite les mêmes chiffres, mais à l'envers si i est impair, on génère 10 palindromes en insérant entre les deux chaines l'un des chiffres de 0 à 9 Fin pour
i = 1, floor(i/2) = 0 on génère : vide[0 à 9]vide, c'est à dire les nombres de 0 à 9
n = 2
i = 1, floor(i/2) = 0 on génère : vide[0 à 9]vide, c'est à dire les nombres de 0 à 9
i = 2, floor(i/2) = 1 on génère : [1 à 9][9 à 1], c'est à dire les nombres 11,22,...99
n = 3
i = 1, floor(i/2) = 0 on génère : vide[0 à 9]vide, c'est à dire les nombres de 0 à 9
i = 2, floor(i/2) = 1 on génère : [1 à 9][9 à 1], c'est à dire les nombres 11,22,...99
i = 3, floor(i/2) = 1 on génère : [1 à 9][0 à 9][9 à 1], c'est à dire les nombres 101,111, ...191, 202, 212, 292...909, ...999
etc...
J'affirme péremptoirement que toute affirmation péremptoire est fausse
5ième élément : barde-prince des figures de style, duc de la synecdoque
Je ne réponds jamais aux questions techniques par MP
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager