Results 1 to 15 of 15
Thread: / C++
Hybrid View
-
29th March 2015 13:04 #1
/ C++
!
. : N (N <= 100), 'A', 'B' 'C' . . N = 6 : ABACAB, : AABACA - 'A' 'A'; ABCBCA - 'BC' 'BC' ABCABC 'ABC' 'ABC'.
, , :
Code:#include <iostream> #include <stdio.h> #include <string> #include <ctime> using namespace std; #define SIZE 1000 static const char letters[] = "ABC"; int len; /* char generate_rand() { return letters[rand() % 3]; } void generate_string() { srand(time(0)); string str; int n; cout << "Enter n = "; cin >> n; cout << endl; for(int i = 0; i < n; i++) { str += generate_rand(); } cout << "Generated string: " << str << endl << endl; len = str.length(); cout << "String length: " << len << endl << endl; } */ int main() { char S[SIZE]; char repeat[SIZE]; int match = 0; cout << "Enter string: "; fgets(S, SIZE-1, stdin); int n = strlen(S); cout << "\nS = " << S; cout << "length = " << n << endl; for (int p = 1; p <= n/2; p++) { for (int i = 0; i < n-p; i++) { if (S[i] == S[i+p]) { match++; if (match >= p) { strncpy(repeat, &S[i-p+1], 2*p); repeat[2*p]='\0'; cout << "\nFound repeat of length " << 2*p << " at location " << i-p+1 << " is: " << repeat << endl; } } else match = 0; } } cout << endl; system("pause"); return 0; }
-
29th March 2015 15:07 #2-==-
Join Date: Sep:2003
Location:
Posts: 6,444
-
29th March 2015 15:21 #3
-
29th March 2015 16:15 #4-==-
Join Date: Sep:2003
Location:
Posts: 6,444
-
29th March 2015 19:06 #5
, :
, , . .Code:#include <iostream> #include <ctime> using namespace std; static const char letters[] = "ABC"; char generate_rand() { return letters[rand() % 3]; } int check(char *s, int pos) { for (int i = 1; i <= (pos + 1)/2; i++) { int flag = 1; for (int j = 0; j < i; j++) if (s[pos-j] != s[pos-i-j]) { flag = 0; continue; } if (flag) return 1; } return 0; } int main() { char s[100]; int n; cout<<"enter n: "; cin>>n; srand(time(NULL)); for (int i = 0; i < n; i++) { do { s[i]=generate_rand(); } while (check(s, i)); cout << s[i] << " "; } cout << " ok" << endl; cin.ignore(); cin.get(); system("pause"); return 0; }
-
29th March 2015 23:49 #6Registered User
Join Date: Dec:2007
Location: Sofia
Posts: 366
,

. N >= 8 ABACABA 7 , .
-
2nd April 2015 15:23 #7
-
2nd April 2015 18:54 #8-==-
Join Date: Sep:2003
Location:
Posts: 6,444
-
2nd April 2015 19:39 #9
, :
Code:#include <iostream> #include <ctime> #include <cstdlib> using namespace std; static const char letters[6][3] = {{'A','B','C'}, {'A','C','B'}, {'B','A','C'}, {'B','C','A'}, {'C','A','B'}, {'C','B','A'}}; int check(char *s, int pos) { for (int i=1; i<=(pos+1)/2; i++) { int flag=1; for (int j=0; j<i; j++) if (s[pos-j]!=s[pos-i-j]) { flag=0; break; } if (flag) return 1; } return 0; } class letter { private: int seq, cval; public: letter() { seq = rand()%6; cval = 0; } char get() { return(letters[seq][cval]); } int next() { cval++; cval %= 3; return (cval); } }; int main() { char string[101]; letter *seq; int clen = 0, req_len = 99; int i; srand(time(NULL)); seq = new letter[req_len]; string[req_len] = 0; while(clen < req_len) { string[clen] = seq[clen].get(); if (!check(string, clen)) clen++; else while(!seq[clen].next()) clen--; } delete[] seq; cout << "The string is:" << endl; cout << string << endl; }ASRock B85 Pro4, Pentium G3240, DD3 8GB/1333MHz, 120GB SSD + 1TB + 640GB HDD
Gigabyte GV-R657OC-1GI, CM B500, ASUS 24B1S1, LCD SAMSUNG SM931BW, 173
-
3rd April 2015 09:46 #10Fujistu Lifebook E756 | Core i7-6500U / 400MHz-3.1GHz | 8 GB DDR4-2133 | Samsung PM871 / 256 GB SSD | 15" 1920x1080 | Manjaro Linux + kernel 4.19




Reply With Quote

Lenovo ThinkPad 15 IdeaPad 15
5th May 2023, 22:16 in