Maison > développement back-end > C++ > 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
Libérer: 2023-09-10 13:25:09
avant
1297 Les gens l'ont consulté

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;
    }
    Copier après la connexion

    Output

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

    1345431 is Palindrome!
    Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal