Advertisement
cunha1

Untitled

Jul 3rd, 2019
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.94 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <fstream>
  4. #include <cstring>
  5.  
  6. using namespace std;
  7.  
  8.  
  9. bool jePalindrom(const char* rijec) {
  10.     int len = strlen(rijec);
  11.     for(int i=0;i<len/2;i++) {
  12.         if(rijec[i] != rijec[len-1-i])
  13.             return false;
  14.     }
  15.     return true;
  16. }
  17.  
  18. int main() {
  19.     char slova[6];
  20.     for(int i=0;i<6;i++) {
  21.         do {
  22.             cout << "Unesi slovo broj " << i+1 << ": ";
  23.             cin>>slova[i];
  24.         }
  25.         while(!(slova[i] >= 'A' && slova[i] <= 'Z'));
  26.     }
  27.  
  28.     // primjer: ako imamo 6 slova i trebamo sve kombinacije duljine 3, broj kombinacija je 6^3, zbrojimo 6^3+6^4+6^5+6^6 za ukupan broj rijeci
  29.     // +1 na sve duljine zbog nul terminatora
  30.     unsigned long int ukupanBrojRijeci = (int)pow(6,3)+(int)pow(6,4)+(int)pow(6,5)+(int)pow(6,6);
  31.     char (*rijeci)[7] = new char[ukupanBrojRijeci][7];
  32.     // pun kurac memorije !!!!
  33.  
  34.  
  35.     unsigned long int brojac=0;
  36.     for(int i=0;i<6;i++) {
  37.         for(int j=0;j<6;j++) {
  38.             for(int k=0;k<6;k++) {
  39.                 rijeci[brojac][0] = slova[i];
  40.                 rijeci[brojac][1] = slova[j];
  41.                 rijeci[brojac][2] = slova[k];
  42.                 rijeci[brojac][3] = '\0';
  43.                 brojac++;
  44.             }
  45.         }
  46.     }
  47.  
  48.     for(int i=0;i<6;i++) {
  49.         for(int j=0;j<6;j++) {
  50.             for(int k=0;k<6;k++) {
  51.                 for(int l=0;l<6;l++) {
  52.                     rijeci[brojac][0] = slova[i];
  53.                     rijeci[brojac][1] = slova[j];
  54.                     rijeci[brojac][2] = slova[k];
  55.                     rijeci[brojac][3] = slova[l];
  56.                     rijeci[brojac][4] = '\0';
  57.                     brojac++;
  58.                 }
  59.             }
  60.         }
  61.     }
  62.  
  63.     for(int i=0;i<6;i++) {
  64.         for(int j=0;j<6;j++) {
  65.             for(int k=0;k<6;k++) {
  66.                 for(int l=0;l<6;l++) {
  67.                     for(int m=0;m<6;m++) {
  68.                         rijeci[brojac][0] = slova[i];
  69.                         rijeci[brojac][1] = slova[j];
  70.                         rijeci[brojac][2] = slova[k];
  71.                         rijeci[brojac][3] = slova[l];
  72.                         rijeci[brojac][4] = slova[m];
  73.                         rijeci[brojac][5] = '\0';
  74.                         brojac++;
  75.                     }
  76.                 }
  77.             }
  78.         }
  79.     }
  80.  
  81.     for(int i=0;i<6;i++) {
  82.         for(int j=0;j<6;j++) {
  83.             for(int k=0;k<6;k++) {
  84.                 for(int l=0;l<6;l++) {
  85.                     for(int m=0;m<6;m++) {
  86.                         for(int n=0;n<6;n++) {
  87.                             rijeci[brojac][0] = slova[i];
  88.                             rijeci[brojac][1] = slova[j];
  89.                             rijeci[brojac][2] = slova[k];
  90.                             rijeci[brojac][3] = slova[l];
  91.                             rijeci[brojac][4] = slova[m];
  92.                             rijeci[brojac][5] = slova[n];
  93.                             rijeci[brojac][6] = '\0';
  94.                             brojac++;
  95.                         }
  96.                     }
  97.                 }
  98.             }
  99.         }
  100.     }
  101.  
  102.     // insertion sort da poredamo sve po abecedi
  103.  
  104.     // ZAKAJ OVO NE RADI
  105.     for (unsigned long i = 1; i < ukupanBrojRijeci; i++)
  106.     {  
  107.         char pom[7];
  108.         strcpy(pom, rijeci[i]);
  109.         unsigned long j = i - 1;  
  110.        
  111.         while (j >= 0 && (strcmp(rijeci[j],pom) == 1))
  112.         {  
  113.             strcpy(rijeci[j+1],rijeci[j]);
  114.             j = j - 1;  
  115.         }  
  116.         strcpy(rijeci[j+1],pom);
  117.     }  
  118.    
  119.  
  120.     ofstream datoteka("kombinacije.txt");
  121.     for(unsigned long int i=0;i<ukupanBrojRijeci;i++) {
  122.         datoteka << rijeci[i] << endl;
  123.     }
  124.     datoteka.close();
  125.  
  126.     ofstream palindromi("palindromi.txt");
  127.     for(int i=0;i<ukupanBrojRijeci;i++) {
  128.         if(jePalindrom(rijeci[i])) {
  129.             palindromi << rijeci[i] << endl;
  130.         }
  131.     }
  132.  
  133.     palindromi.close();
  134.  
  135.  
  136.  
  137.     return 0;
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement