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;
}