3 votes

Algorithme plus efficace pour imprimer les nombres qui sont palindromes et leur puissance à 2 sont aussi palindromes

Je cherche un algorithme plus efficace pour imprimer des nombres qui sont palindromiques (par exemple 1001) et leur puissance à 2 (1001 * 1001 = 1002001) le sont aussi. Dans mon algorithme, je pense que je fais des vérifications inutiles pour déterminer si le nombre est palindromique. Comment puis-je l'améliorer ?

Dans la plage [1000,9999], j'ai trouvé ce genre de 3 chiffres : 1001, 1111 et 2002.

C'est mon algorithme :

for (int i = n; i <= m; i++)
{
    if (checkIfPalindromic(i.ToString()))
    {
        if (checkIfPalindromic((i * i).ToString()))
             Console.WriteLine(i);
    }
}

voici ma méthode pour déterminer si un nombre est palindromique :

static bool checkIfPalindromic(string A)
{
    int n = A.Length - 1;
    int i = 0;
    bool IsPalindromic = true;

    while (i < (n - i))
    {
        if (A[i] != A[n - i])
        {
            IsPalindromic = false;
            break;
        }

        i++;
    }

    return IsPalindromic;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X