imagine-fundal

Blog / 📚 Algoritm eficient verificare număr palindrom C++, Python, Java
facebook instagram whatsapp tiktok twitter

     În tutorialul de astăzi vom parcurge algoritmul eficient de verificare număr palindrom. Acesta apare în problemele de performanță și olimpiadă, dar și la nivelul de clasă, folosind doar structuri de început în aplicare. Totodată, poate fi scris în toate limbajele de programare, ca urmare vom parcurge reprezentările în C++ Imagine C++, Python Imagine Python și Java Imagine Java. Un număr este palindrom dacă este egal cu oglinditul său, e exemplu pentru intrarea 212, vom primi rezultatul nr este palindrom, în schimb, pentru intrarea 351, vom primi ieșirea nr nu este palindrom. Acest algoritm va verifica în interiorul funcției dacă oglinditul unui număr citit de la tastatură este egal cu acesta. Dacă da, atunci el este palindrom. Înainte de a începe să scriem codul vom înteleg cum funcționează. Tehnicile folosite sunt aproximativ aceleași, așa că explicațiile sunt la modul general.

     Citim într-o variabilă numărul introdus de la tastatură. Acum, în funcția verifpal(), de tip bool, vom afla oglinditul numărului folosind algoritmul de determinare oglindit, iar apoi, dacă noul număr este același cu primul vom returna adevărat (true), în caz contrar, funcția se termină cu rezultatul false (fals).

     Mai jos puteți vedea implementările în limbajele C++, Python și Java și câteva probleme pe care le recomandăm pentru a înțelege mai bine tutorialul de astăzi.

     Probleme recomandate de pe platforma PBinfo: PalMax, NrPal, palindrom prin norocoase

Implementarea C++ Imagine C++:

#include <iostream>
using namespace std;
bool verifpal(int a) {
    int copie = a, oglinda = 0;
    while (a > 0) {
        oglinda = oglinda * 10 + a % 10;
        a = a / 10;
    } if (copie == oglinda)
        return true;
    return false;
}
int main() {
    int a;
    cin >> a;
    if (verifpal(a))
        cout << "nr este palindrom";
    else
        cout << "nr nu este palindrom";
    return 0;
}

Implementarea Python Imagine Python:

def verifpal(a):
    copie = a
    oglinda = 0
    while (a > 0):
        oglinda = oglinda * 10 + a % 10
        a = a // 10
    if (oglinda == copie):
        return 1
    return 0        
a = int(input())
if (verifpal(a)):
    print("nr este palindrom")
else:
    print("nr nu este palindrom")

Implementarea Java Imagine Java:

import java.util.Scanner;
class Tutorial {
    public static boolean verifpal(int a) {
        int copie = a, oglinda = 0;
        while (a > 0) {
            oglinda = oglinda * 10 + a % 10;
            a = a / 10;
        } if (oglinda == copie)
            return true;
        return false;
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        if (verifpal(a))
            System.out.println("nr este palindrom");
        else
            System.out.println("nr nu este palindrom");
    }
}

imagine

pbinfo / 659

imagine

pbinfo / 72

imagine

pbinfo / 1270