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

Перечислить все последовательности из n нулей, единиц и двоек, в которых никакая группа цифр не повторяется два раза подряд (нет куска вида XX ) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Выяснить, можно ли добавить в последовательность цифры и знаки арифметических действий http://www.cyberforum.ru/cpp-beginners/thread825311.html
1. Дана последовательность из N круглых, квадратных и фигурных скобок. Выяснить, можно ли добавить в неё цифры и знаки арифметических действий так, чтобы получилось правильное арифметическое выражение. Ограничения: 1 <= N <= 100 000. Ввод: В первой строке находится число скобок N, во второй - N символов из набора (, ), , {, }. Вывод: Выводится слово "Yes", если получить правильное...
C++ Программа, которая формирует список L, включив в него по одному разу элементы... Не могу решить задачу, компилирует но вылетает: Составить программу, которая формирует список L, включив в него по одному разу элементы, которые входят в один из списков L1 и L2, но в то же время не входят в другой. # include <iostream.h> # include <string.h> struct List {int data;List *next; }; http://www.cyberforum.ru/cpp-beginners/thread825307.html
объясните пожалусто каждый пункт C++
Реализовать программу демонстрирующую решение поставленной задачи. Необходимо соблюсти условия перечисленные ниже. 1. Ввод исходных данных и вывод результата на экран производить в основной программе, решение задачи осуществлять в созданной функции. 2. Не применять индексированных переменных для доступа к элементам массивов, а использовать разыменование указателей. 3. Вызывать функции через...
C++ Можно ли переписать заполненный стек в массив?
Можно ли переписать заполненный стек в массив, а затем после сортировки запихнуть всё обратно в стек?
C++ Не воспринимает кириллицу http://www.cyberforum.ru/cpp-beginners/thread825297.html
Есть программа - вводим текст, выводит самое длинное слово. #include <iostream> using namespace std; char longest_word; unsigned short int temp; unsigned short int maximum = 1; bool letter (const char &text) {
C++ Выделение в исходном коде программы ключевых слов языка и операторов языка по словарю Разбор исходного текста на языке программирования. Выделение в исходном коде программы ключевых слов языка и операторов языка по словарю. Объясните что это значит? Пример можете показать? подробнее

Показать сообщение отдельно
Doomsday
18 / 0 / 0
Регистрация: 20.11.2012
Сообщений: 40
01.04.2013, 21:39     Перечислить все последовательности из n нулей, единиц и двоек, в которых никакая группа цифр не повторяется два раза подряд (нет куска вида XX )
Перечислить все последовательности из n нулей, единиц и двоек, в которых никакая группа цифр не повторяется два раза подряд (нет куска вида XX ).

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

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
43
44
#include "stdafx.h"
#include <stdlib.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <time.h>
#include <math.h>
 
using namespace std;
 
int main() {
    int n, m=0, element1=0, element2=1; // Объявляем переменные 
    //element1 - первый сравниваемый элемент, element2 - второй сравниваемый элемент 
    //m -  количество последовательностей, в которых нет куска вида XX 
    //n - число элементов последовательности из нулей, единиц и двоек
    cout << "Enter n: ";
    cin >> n;
    int* arr = new int[n];// Задаем массив из n элементов
    srand (time(0)); // Инициализируем генератор псевдослучайных чисел
    int num;
    for (int i=0; i<n; i++) {
        num=rand() %3;// Генерируем случайные числа от 0 до 2
        arr[i]=num;
    }
    for (int i=0;i<n;i++) {cout << arr[i] << " " ;}
    cout << endl;// Выводим массив на экран
    do {
        if (arr[element1]>arr[element2] || arr[element1]<arr[element2]) {
            m=m++;
            cout << arr[element1];
            cout << " ";
            cout << arr[element2] << endl;// Сравниваем последовательно элементы: первый и второй, второй и третий и тд. 
            // Если они не равны, то выводим их на экран
        }
        element1=element1++;
        element2=element2++;
    }
    while (element2<n);// Выполняем цикл, пока второй элемент не станет равным числу n. 
    //После этого последний элемент не с чем будет сравнивать
    cout << "the number of sequences: ";
    cout << m << endl;// Выводим количество последовательностей, в которых нет куска вида XX
    delete []arr;//Стираем наш массив после использования, чтобы освободить память
    system("pause");
}
ну к примеру: имеем массив из 6 элементов: 0 1 2 1 1 0
моя программа выведет
0 1
1 2
2 1
1 0
а по идее должна вывести
0 1 2 1
1 0
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru