Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <fstream>
- #include <cstring>
- using namespace std;
- bool jePalindrom(const char* rijec) {
- int len = strlen(rijec);
- for(int i=0;i<len/2;i++) {
- if(rijec[i] != rijec[len-1-i])
- return false;
- }
- return true;
- }
- int main() {
- char slova[6];
- for(int i=0;i<6;i++) {
- do {
- cout << "Unesi slovo broj " << i+1 << ": ";
- cin>>slova[i];
- }
- while(!(slova[i] >= 'A' && slova[i] <= 'Z'));
- }
- // 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
- // +1 na sve duljine zbog nul terminatora
- unsigned long int ukupanBrojRijeci = (int)pow(6,3)+(int)pow(6,4)+(int)pow(6,5)+(int)pow(6,6);
- char (*rijeci)[7] = new char[ukupanBrojRijeci][7];
- // pun kurac memorije !!!!
- unsigned long int brojac=0;
- for(int i=0;i<6;i++) {
- for(int j=0;j<6;j++) {
- for(int k=0;k<6;k++) {
- rijeci[brojac][0] = slova[i];
- rijeci[brojac][1] = slova[j];
- rijeci[brojac][2] = slova[k];
- rijeci[brojac][3] = '\0';
- brojac++;
- }
- }
- }
- for(int i=0;i<6;i++) {
- for(int j=0;j<6;j++) {
- for(int k=0;k<6;k++) {
- for(int l=0;l<6;l++) {
- rijeci[brojac][0] = slova[i];
- rijeci[brojac][1] = slova[j];
- rijeci[brojac][2] = slova[k];
- rijeci[brojac][3] = slova[l];
- rijeci[brojac][4] = '\0';
- brojac++;
- }
- }
- }
- }
- for(int i=0;i<6;i++) {
- for(int j=0;j<6;j++) {
- for(int k=0;k<6;k++) {
- for(int l=0;l<6;l++) {
- for(int m=0;m<6;m++) {
- rijeci[brojac][0] = slova[i];
- rijeci[brojac][1] = slova[j];
- rijeci[brojac][2] = slova[k];
- rijeci[brojac][3] = slova[l];
- rijeci[brojac][4] = slova[m];
- rijeci[brojac][5] = '\0';
- brojac++;
- }
- }
- }
- }
- }
- for(int i=0;i<6;i++) {
- for(int j=0;j<6;j++) {
- for(int k=0;k<6;k++) {
- for(int l=0;l<6;l++) {
- for(int m=0;m<6;m++) {
- for(int n=0;n<6;n++) {
- rijeci[brojac][0] = slova[i];
- rijeci[brojac][1] = slova[j];
- rijeci[brojac][2] = slova[k];
- rijeci[brojac][3] = slova[l];
- rijeci[brojac][4] = slova[m];
- rijeci[brojac][5] = slova[n];
- rijeci[brojac][6] = '\0';
- brojac++;
- }
- }
- }
- }
- }
- }
- // insertion sort da poredamo sve po abecedi
- // ZAKAJ OVO NE RADI
- for (unsigned long i = 1; i < ukupanBrojRijeci; i++)
- {
- char pom[7];
- strcpy(pom, rijeci[i]);
- unsigned long j = i - 1;
- while (j >= 0 && (strcmp(rijeci[j],pom) == 1))
- {
- strcpy(rijeci[j+1],rijeci[j]);
- j = j - 1;
- }
- strcpy(rijeci[j+1],pom);
- }
- ofstream datoteka("kombinacije.txt");
- for(unsigned long int i=0;i<ukupanBrojRijeci;i++) {
- datoteka << rijeci[i] << endl;
- }
- datoteka.close();
- ofstream palindromi("palindromi.txt");
- for(int i=0;i<ukupanBrojRijeci;i++) {
- if(jePalindrom(rijeci[i])) {
- palindromi << rijeci[i] << endl;
- }
- }
- palindromi.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement