Advertisement
halexandru11

atestat_2.cpp

Nov 23rd, 2020
69
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. // determina prima cifra a numarului x
  7. unsigned int cifra(unsigned int x) {
  8.     while(x > 9) {
  9.         x /= 10;
  10.     }
  11.     return x;
  12. }
  13.  
  14. // determina daca valoarea transmisa(x) este palindrom
  15. // returneaza 1 in caz afirmativ, 0 in caz negativ
  16. unsigned int verifica(long long x) {
  17.     long long ogl = 0, aux = x;
  18.     while(aux) {
  19.         ogl = ogl*10 + aux%10;
  20.         aux /= 10;
  21.     }
  22.     return ogl == x;
  23. }
  24.  
  25. int main() {
  26.     ifstream fin("numar.in");
  27.     ofstream fout("numar.out");
  28.  
  29.     unsigned int n, nr;
  30.     fin >> n;
  31.     long long x = 0;
  32.     // citesc numerele si extrag prima cifra de la fiecare
  33.     // dupa care formez numarul x din prima cifra a fiecarui numar
  34.     for(int i = 0; i < n; ++i) {
  35.         fin >> nr;
  36.         nr = cifra(nr);
  37.         x = x*10 + nr;
  38.     }
  39.  
  40.     // afisez x dupa care verific daca este palindrom si afisez mesajul corespunzator
  41.     fout << x << "\n";
  42.     if(verifica(x)) {
  43.         fout << "Numarul " << x << " este palindrom";
  44.     }
  45.     else {
  46.         fout << "Numarul " << x << " nu este palindrom";
  47.     }
  48. }
  49.  
Advertisement
RAW Paste Data Copied
Advertisement