Advertisement
cmiN

ubb2011

Jul 12th, 2012
1,033
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.73 KB | None | 0 0
  1. // ubb 2011 admission compatibility shit
  2.  
  3. #include <iostream> // iostream.h
  4. using namespace std; // missing
  5. #define N 100
  6.  
  7. void afisare(int vec[], int len) {
  8.     int i;
  9.     for (i = 0; i < len; i++)
  10.         cout << vec[i] << ' ';
  11. }
  12.  
  13. void citire(int vec[], int& len) {
  14.     len = 0; // lungime intiiala 0
  15.     int nr;
  16.     cin >> nr;
  17.     while (nr != 0) {
  18.         vec[len] = nr;
  19.         len++;
  20.         cin >> nr;
  21.     }
  22. }
  23.  
  24. void cifre(int vec[], int& len, int nr) {
  25.     // analaog ca la citire, numai ca pentru cifrele unui nr
  26.     len = 0;
  27.     while (nr != 0) {
  28.         vec[len] = nr % 10;
  29.         len++;
  30.         nr = nr / 10;
  31.     }
  32. }
  33.  
  34. int palindrom(int nr) {
  35.     int cif[10];
  36.     int ncif, i;
  37.     cifre(cif, ncif, nr);
  38.     for (i = 0; i < ncif / 2; i++) { // iteram pana la jum.
  39.         if (cif[i] != cif[ncif - 1 - i]) { // verificam
  40.             return 0;
  41.         }
  42.     }
  43.     return 1; // daca s-a ajuns aici, numarul e palindrom
  44. }
  45.  
  46. void inserare(int vec[],  int& len, int nr) {
  47.     int i, j;
  48.     for (i = 0; i < len; i++) {
  49.         if (vec[i] == nr) return; // numar deja inserat
  50.         else if (vec[i] < nr) { // nr trebuie inserat pe poz i
  51.             for (j = len; j > i; j--) {
  52.                 vec[j] = vec[j - 1];
  53.             }
  54.             vec[i] = nr;
  55.             break;
  56.         }
  57.     }
  58.     if (i == len) vec[i] = nr;
  59.     len++;
  60. }
  61.  
  62. int main() { // void :)
  63.     int sir[N], nsir, i, sir2[N], nsir2 = 0;
  64.     citire(sir, nsir);
  65.     for (i = 0; i < nsir; i++) {
  66.         if (palindrom(sir[i]) == 1) {
  67.             inserare(sir2, nsir2, sir[i]);
  68.         }
  69.     }
  70.     if (nsir2 == 0) {
  71.         cout << "Sirul Y e vid.";
  72.     } else {
  73.         afisare(sir2, nsir2);
  74.     }
  75.     return 0; // no return
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement