Vérification de palindromes dysfonctionnelle

Résolu
Evenkore Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
Crazy Legs Messages postés 635 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
alors voilà : je m'essaie au Project Euler https://projecteuler.net/, et je voudrais coder une fonction renvoyant TRUE si un nombre donné est un palindrome (s'il se lit de la même façon dans les deux sens) pour une partie d'un programme censé résoudre le problème n°4. Je sais cependant que le plus grand palindrome en-dessous de 999*999 est 997799, or quand je passe ce nombre à ma fonction, elle me renvoie FALSE. Aidez-moi please :(

Code de la fonction :
bool vPalind(int nb) {
    stringstream ss;
    ss << nb;
    string st(ss.str()), sv;
    int i(st.length());
    while (i >= 0) {
        sv += st[i];
        i--;
    }
    return (sv == st);
}

1 réponse

Crazy Legs Messages postés 635 Date d'inscription   Statut Membre Dernière intervention   98
 
Salut,

Est-ce que ça serait pas plus propre, voire même plus rapide de travailler avec des nombres (int) ?
Si tu as utilisé des strings pour compter le nombre de chiffres, utilise plutôt la fonction atoi.

Est-ce que tu peux mettre l'énoncé de l'exercice 4 (pas envie de m'inscrire).
0