Vérification de palindromes dysfonctionnelle

Résolu
Evenkore Messages postés 18 Statut Membre -  
Crazy Legs Messages postés 777 Statut Membre -
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 777 Statut Membre 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