Maison  >  Article  >  développement back-end  >  Programme récursif pour vérifier si un nombre est un palindrome en C++

Programme récursif pour vérifier si un nombre est un palindrome en C++

WBOY
WBOYavant
2023-09-10 13:25:091180parcourir

Programme récursif pour vérifier si un nombre est un palindrome en C++

Nous obtenons un entier en entrée. Le but est d'utiliser la récursivité pour déterminer si le nombre d'entrée Num est un palindrome.

Pour vérifier si un nombre est un palindrome, inversez le nombre et vérifiez si les deux nombres sont identiques. Si le nombre inversé est égal au nombre original, c'est un palindrome.

Exemple

Input− Num = 34212;

Output− 34212 n'est pas un palindrome !

Explication− Si on inverse 34212, on obtient 21243. 34212 != 21243 Le nombre saisi n'est donc pas un palindrome.

Entrée− Num = 32123 ;

Sortie− 32123 est un palindrome !

Explication - Si on inverse 32123, on obtient 32132. 32123!= 32123, donc le nombre saisi est un palindrome.

La méthode utilisée dans le programme ci-dessous est la suivante

Dans cette méthode, nous utilisons la fonction récursive revrsNum(int num1, int num2), qui accepte le numéro d'entrée num1 et le numéro temporaire num2.

Pour le cas de base - : si num1 est 0, renvoie num2.

p>

Else- : utilisez la récursivité pour calculer l'ordre inverse de num1. Renvoie l'inverse du calcul.

Si les deux sont identiques, le nombre saisi est un palindrome.

  • Obtenez le numéro d'entrée Num.

    • Obtenez le numéro d'entrée Num. p>

    • Prenez Num2 = revrsNum(Num,0)

    • La fonction revrsNum(int num1, int num2) génère récursivement la valeur inverse de num1 et renvoie le nombre inversé.

    • Si num1 vaut 0, le résultat du calcul inversé renvoie num2.

    • Sinon multipliez num2 par 10 et ajoutez num1%10.

    • Réduisez num1 de 10 en utilisant num1=num1/10.

    • Utilisez revrsNum(recursive num1, num2);

    • pour renvoyer le résultat.

    • Imprimez les résultats obtenus à l'intérieur du main.

    Exemple

    #include <bits/stdc++.h>
    using namespace std;
    int revrsNum(int num1, int num2){
       if (num1 == 0){
          return num2;
       }
       num2 *= 10;
       num2 += (num1 % 10);
       num1 = num1/10;
       return revrsNum(num1, num2);
    }
    int main(){
       int Num = 1345431;
       int Num2 = revrsNum(Num,0);
       if (Num == Num2){
          cout <<Num<<" is Palindrome!";
       }
       else{
          cout <<Num<<" is not a Palindrome!";
       }
       return 0;
    }

    Output

    Si nous exécutons le code ci-dessus, il générera la sortie suivante

    1345431 is Palindrome!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer