👤
Ellena1234
a fost răspuns

Un număr natural se numește palindrom dacă numărul citit de la stânga la dreapta este egal cu numărul citit de la dreapta la stânga.
a) scrieți definiția completă a subprogramului Palindorm care primește prin intermediul parametrului n un număr natural de cel mult nouă cifre și returnează 1 dacă acesta este palindrom și 0 în caz contrar.
b) Fișierul text numere.in conține mai multe numere naturale de cel mult nouă cifre fiecare numerele fiind despărțite prin câte un spațiu. Cel puțin unul dintre numere este palindrom.
Scrieți un program C/C++care citește numerele în fișierul numere.in și folosind apeluri utile ale funcției Palindrom, determine în mod eficient care este cel mai mare număr palindrom citit. Programul scriem fiecare text numere.out numărul astfel determinat.
Exemplu:daca numere.in conține numerele:
23 567 78687 7865 78687 7887 23 78687 98798 atunci numere.out va conține: 78687
c) Descrieți succint un limbaj natural metoda de rezolvare folosind de la punctul b(3-4randuri).
Mulțumesc mult pentru ajutor!


Răspuns :

Secvența pentru a)
int Palindrom(int n){
    int t=0, s=n;
    while(n>0){
        t = t*10+n%10;
        n = n/10;
    }
    return t==s;
}

secvența pentru b)
int max=0, t;
ifstream f("numere.in");
ofstream g("numere.out");
while(!f.eof()){
    f>>t;
    if(Palindrom(t) && t>max) max = t;
}
g<<t;


Cred că te descurci să le așezi în program de aici :))