Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program rekursif untuk memeriksa sama ada nombor adalah palindrom dalam C++

Program rekursif untuk memeriksa sama ada nombor adalah palindrom dalam C++

WBOY
WBOYke hadapan
2023-09-10 13:25:091180semak imbas

Program rekursif untuk memeriksa sama ada nombor adalah palindrom dalam C++

Kami mendapat integer sebagai input. Matlamatnya adalah untuk menggunakan rekursi untuk menentukan sama ada nombor input Num ialah palindrom.

Untuk menyemak sama ada nombor adalah palindrom, terbalikkan nombor itu dan semak sama ada kedua-dua nombor adalah sama. Jika nombor terbalik adalah sama dengan nombor asal, ia adalah palindrom.

Contoh

Input− Nombor = 34212;

Penjelasan− Jika kita terbalikkan 34212, kita dapat 21243. 34212 != 21243 Oleh itu nombor yang dimasukkan bukanlah palindrom.

Input− Num = 32123;

Output#🎜🎜🎜#1−3 ialah 32123;

Penjelasan - Jika kita terbalikkan 32123, kita dapat 32132. 32123!= 32123, jadi nombor input ialah palindrom.

Kaedah yang digunakan dalam program berikut adalah seperti berikut

Dalam kaedah ini, kami menggunakan fungsi rekursif revrsNum(int num1, int num2), yang menerima input nombor num1 dan nombor sementara num2.

Untuk kes asas -: jika nombor1 ialah 0, kembalikan nombor2.

p>Else-: Gunakan rekursi untuk mengira susunan terbalik nombor1. Mengembalikan salingan pengiraan.

Jika kedua-duanya sama, nombor yang dimasukkan ialah palindrom.

Dapatkan nombor input Num.

  • Dapatkan nombor input Num. p>

      Dapatkan Num2 = revrsNum(Num,0)
    • Function revrsNum2, intsive numrates1 songsangan bagi num1 dan mengembalikan nombor terbalik.

    • Jika nombor1 ialah 0, hasil pengiraan songsang mengembalikan nombor2.

    • Jika tidak, darabkan nombor2 dengan 10 dan tambahkan nombor1%10.

    • Kurangkan num1 dengan 10 menggunakan num1=num1/10.

    • Gunakan revrsNum(rekursif num1, num2);

    • untuk mengembalikan keputusan

    • Cetak keputusan yang diperolehi di dalam utama.

    • Contoh

      #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
    Jika kita menjalankan kod di atas# ia akan menjana kod output berikut #
    1345431 is Palindrome!

Atas ialah kandungan terperinci Program rekursif untuk memeriksa sama ada nombor adalah palindrom dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam