Informatică, întrebare adresată de laurstefan2002, 8 ani în urmă

Pbinfo palindromsd #2375 va rog:
Cerința
Fișierul palindromsd.in conține cel mult 1000 de numere naturale, câte un număr pe fiecare linie. Să se afișeze numerele palindrom din fișier în ordinea primul, ultimul, al doilea, penultimul etc.

Date de intrare
Fișierul de intrare palindromsd.in conține câte un număr pe fiecare linie.

Date de ieșire
Fișierul de ieșire palindromsd.out va conține pe prima linie numerele palindrom in ordinea cerută.

Restricții și precizări
1 ≤ numărul de numere din fișier ≤ 1000
numerele din fișierul de intrare vor fi mai mici decât 1.000.000.000
în cazul în care nu există niciun număr palindrom, în fișierul de ieșire se va scrie -1

Exemplu
palindromsd.in

11
21
303
4114
51
66
75
808
palindromsd.out

11 808 303 66 4114
Explicație
Numerele palindrom sunt 11, 303, 4114, 66, 808.

Răspunsuri la întrebare

Răspuns de Madalin77
5

Răspuns:

#include<iostream>

#include<fstream>

using namespace std;

ifstream f("palindromsd.in");

ofstream g("palindromsd.out");

int vec[1001];

bool numarPalindrom(int numar)

{

   int numarInitial, numarInvers = 0;

   numarInitial = numar;

   while(numar)

   {

       int c = numar % 10;

       numarInvers = numarInvers * 10 + c;

       numar = numar / 10;

   }

  return numarInitial == numarInvers;

}

int main(){

   int nr,i=0;

   while(f>>nr){

       if(numarPalindrom(nr)){

           vec[i] = nr;

           i++;

       }

   }

int n = i;

    if(n == 0){

       g<<-1;

       f.close();

       g.close();

       return 0;

   }

   int st=0,dr=n-1;

   for(i=0; i<n; i++)

   {

       if(i%2==0)

       {

           g<<vec[st++]<<" ";

       }

       else

       {

           g<<vec[dr--]<<" ";

       }

   }

   f.close();

   g.close();

   return 0;

}

Explicație:

Alte întrebări interesante