Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.88
recovery101
1 / 1 / 0
Регистрация: 10.06.2011
Сообщений: 10
08.01.2012, 21:40     Составить слово из букв A, B, C #1
Здравствуйте. Прошу помочь написать прогу, которая составляет из букв A, B, C слово длины N. В слове не должны рядом стоять одинаковые сочетания букв.
Например:
ABCABA - составлено правильно.
CABABC - составлено неправильно. Там АВ стоят рядом.
Длина N вводится с клавиатуры. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2012, 21:40     Составить слово из букв A, B, C
Посмотрите здесь:

C++ Ввести строку и слово. Вывести те слова, которые не содержат букв, входящих в слово.
C++ Определить, в введенном предложении слово, которое состоит из тех же букв, что и заданное ключевое слово.
можно ли из букв слова Х составить слово У C++
Проверить, можно ли из данных букв составить заданное слово S C++
C++ Составить слово из букв, заданных в двухмерном массиве
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sadom
11 / 11 / 1
Регистрация: 06.01.2012
Сообщений: 18
08.01.2012, 22:42     Составить слово из букв A, B, C #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;
}
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
08.01.2012, 23:18     Составить слово из букв A, B, C #3
Sadom, не работает что-то ваш код. Вы его проверяли?

Добавлено через 3 минуты
У самого что-то идеи не возникают изящной реализации вашего задания. Есть возможность перебирать все варианты для слова длины n задействовав stl (next_permutation), но вот длины n только из abc ...
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
08.01.2012, 23:21     Составить слово из букв A, B, C #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/a05769...084fd672342da3
recovery101
1 / 1 / 0
Регистрация: 10.06.2011
Сообщений: 10
08.01.2012, 23:22  [ТС]     Составить слово из букв A, B, C #5
Sadom, чувак, спасибо огромное) всё ок работает. Огромное спасибо!)
Sadom
11 / 11 / 1
Регистрация: 06.01.2012
Сообщений: 18
08.01.2012, 23:24     Составить слово из букв A, B, C #6
не за что )
recovery101
1 / 1 / 0
Регистрация: 10.06.2011
Сообщений: 10
08.01.2012, 23:28  [ТС]     Составить слово из букв A, B, C #7
Спасибо все остальным тоже за помощь)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2012, 23:28     Составить слово из букв A, B, C
Еще ссылки по теме:

C++ Программа, которая проверяет, можно ли введенное с клавиатуры слово (stroka_2) составить из букв исходного слова
C++ Составить слово из последних букв слов введенной строки
Дано слово. Поменять местами первую из букв а и последнюю из букв о! кто может помчь! C++

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

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
08.01.2012, 23:28     Составить слово из букв A, B, C #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;
}
Yandex
Объявления
08.01.2012, 23:28     Составить слово из букв A, B, C
Ответ Создать тему
Опции темы

Текущее время: 03:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru