Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.76/17: Рейтинг темы: голосов - 17, средняя оценка - 4.76
recovery101
1 / 1 / 0
Регистрация: 10.06.2011
Сообщений: 10
1

Составить слово из букв A, B, C

08.01.2012, 21:40. Просмотров 3169. Ответов 7
Метки нет (Все метки)

Здравствуйте. Прошу помочь написать прогу, которая составляет из букв A, B, C слово длины N. В слове не должны рядом стоять одинаковые сочетания букв.
Например:
ABCABA - составлено правильно.
CABABC - составлено неправильно. Там АВ стоят рядом.
Длина N вводится с клавиатуры. Заранее спасибо.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2012, 21:40
Ответы с готовыми решениями:

Проверить можно ли из букв составить слово
Вводится число n. Далее вводится словарь из n букв. Буквы могут...

Можно ли из букв слова X составить слово Y?
проверьте , можно ли из букв слова Х составить слово У.Пожалуйста помогите ,...

Составить слово из букв, заданных в двухмерном массиве
Двухмерный масив n*m содержит некоторые буквы русского алфавита , расположенные...

Можно ли из букв, входящих в одно слово, составить другое
Даны два слова. Составить программу проверки, можно ли из букв, входящих в одно...

Составить слово из последних букв слов введенной строки
Помогите написать программку Ввестри строку, содержащую несколько слов....

7
Sadom
11 / 11 / 3
Регистрация: 06.01.2012
Сообщений: 19
08.01.2012, 22:42 2
Как-то так, если я правильно понял условие..

code
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <time.h>
 
using namespace std;
 
int main()
{
    srand(time(NULL));
    int x;
    int n = 0, n1 = 0, n2 = 0;
 
    cout << "Enter the lenght of word: ";
    cin >> x;
 
    for (int i = 1; i <= x; i++)
    {
        while(true)
        {
            n = rand() % 3;
            if (n2 != n)
            {
                switch(n)
                {
                    case 0:
                    cout << "A";
                    break;
                    case 1:
                    cout << "B";
                    break;
                    case 2:
                    cout << "C";
                    break;
                }
                n2 = n1;
                n1 = n;
                break;
            }
        }
    }
    system("pause");
    return 0;
}
1
Gepar
1181 / 537 / 77
Регистрация: 01.07.2009
Сообщений: 3,517
08.01.2012, 23:18 3
Sadom, не работает что-то ваш код. Вы его проверяли?

Добавлено через 3 минуты
У самого что-то идеи не возникают изящной реализации вашего задания. Есть возможность перебирать все варианты для слова длины n задействовав stl (next_permutation), но вот длины n только из abc ...
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
08.01.2012, 23:21 4
Проверяйте
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <algorithm>
#include <ctime>
 
bool cmp (int i,int j) { return (i<j); }
 
char gen() { 
   static char c = 'A' ; 
   if ( c == 'C')
      c = 'A';
   else 
      ++c;
   return c;
}         
 
bool fun (char *first, char *last) {
   char *it = first + 1;
   for ( ; (it + 2) < last ; it ++ )
      if ( ( *(it - 1) == *(it + 1) ) && ( *it == *(it + 2) ) )
         return true;
   return false;
}         
 
 
int main() {
   srand ( time (NULL) );
   int N = rand() % 15 + 5;
   char *arr = new char [N];
   
   std::generate (arr, arr + N, gen);
   
   std::sort (arr, arr + N); 
   
   while ( std::next_permutation (arr, arr + N) && fun (arr, arr + N) ) ;
   std::cout << "N = " << N << std::endl << arr << std::endl;
   return 0;
}
http://liveworkspace.org/code/a05769bc028c1eec10084fd672342da3
1
recovery101
1 / 1 / 0
Регистрация: 10.06.2011
Сообщений: 10
08.01.2012, 23:22  [ТС] 5
Sadom, чувак, спасибо огромное) всё ок работает. Огромное спасибо!)
0
Sadom
11 / 11 / 3
Регистрация: 06.01.2012
Сообщений: 19
08.01.2012, 23:24 6
не за что )
0
recovery101
1 / 1 / 0
Регистрация: 10.06.2011
Сообщений: 10
08.01.2012, 23:28  [ТС] 7
Спасибо все остальным тоже за помощь)
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
08.01.2012, 23:28 8
Кое-что упустил
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <algorithm>
#include <ctime>
 
bool cmp (int i,int j) { return (i<j); }
 
char gen() { 
   static char c = 'A' ; 
   if ( c == 'C')
      c = 'A';
   else 
      ++c;
   return c;
}         
 
bool fun (char *first, char *last) {
   char *it = first + 1;
   for ( ; (it + 2) < last ; ++it )
      if ( ( *(it - 1) == *(it + 1) ) && ( *it == *(it + 2) ) )
         return true;
   return false;
}         
 
 
int main() {
   srand ( static_cast<unsigned> (time (NULL)) );
   int N = rand() % 15 + 5;
   char *arr = new char [N + 1];
   
   std::generate (arr, arr + N, gen);
   arr[N] = '\0';
 
   std::sort (arr, arr + N); 
   
   while ( std::next_permutation (arr, arr + N) && fun (arr, arr + N) ) ;
   std::cout << "N = " << N << std::endl << arr << std::endl;
 
   std::system ("pause");
   return 0;
}
2
08.01.2012, 23:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2012, 23:28

Проверить, можно ли из данных букв составить заданное слово S
Люди, помогите решить задачу: Двумерный массив М N содержит некоторые буквы...

Проверить, можно ли из данных символов (букв) составить заданное слово (предложение)
Здравствуйте! Помогите пожалуйста с идеей решение, не знаю с чего начать:...

Программа, проверяющая, можно ли введенное с клавиатуры слово составить из букв исходного слова
вводятся с клавиатуры предложение, затем слово, которое надо составить из букв...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru