Advertisement
Five_NT

Atestat 2014 - Probl. 5

Nov 23rd, 2013
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. /*5.
  2. Fisierul text numere.in contine pe prima linie un numar natural n (0=n=5000), iar pe a doua linie n numere
  3. naturale de cel mult 9 cifre fiecare, separate prin câte un spatiu. Sa se scrie un program care citeste n,
  4. apoi cele n numere naturale din fisierul numere.in si scrie în fisierul numere.out, pe câte o linie
  5. fiecare, numerele de pe a doua linie a fisierului numere.out care sunt palindroame cu exact patru cifre
  6. (un numar este palindrom daca este egal cu oglinditul sau).
  7. Ex: daca fisierul numere.in are urmatorul continut :
  8. 5
  9. 1441  5  14   2552  78
  10.  atunci fisierul numere.out va contine :
  11. 1441  
  12. 2552
  13. */
  14. #include <iostream>
  15. #include <fstream>
  16.  
  17. using namespace std;
  18.  
  19. int n, v[100], i, nr2;
  20.  
  21. void Read();
  22. int Check(int v[100]);
  23.  
  24. int main()
  25. {
  26.     Read();
  27.     ofstream g("numere.out");
  28.     for(i=1; i<=n; i++)
  29.         g<<Check(v)<<" ";
  30.     g.close();
  31.     return 0;
  32. }
  33.  
  34. void Read()
  35. {
  36.     ifstream f("numere.in");
  37.     f>>n;
  38.     for(i=1; i<=n; i++)
  39.         f>>v[i];
  40.     f.close();
  41. }
  42.  
  43. int Check(int v[100])
  44. {
  45.     int aux=0, k, nr=0;
  46.     for(i=1; i<=n; i++)
  47.     {
  48.         k=0;
  49.         aux=v[i], nr2=v[i];
  50.         while(aux)
  51.         {
  52.             aux/=10;
  53.             k++;
  54.         }
  55.         if(k==4)
  56.         {
  57.             while(v[i])
  58.             {
  59.                 nr=nr*10+v[i]%10;
  60.                 v[i]/=10;
  61.             }
  62.             if(nr==nr2)
  63.                 return nr2;
  64.         }
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement