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

Жемчужное ожерелье - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поменять части массива местами http://www.cyberforum.ru/cpp-beginners/thread1199636.html
Дан массив M, размерность задать в программе с помощью именованной константы. Указать элемент-границу (ввести номер с клавиатуры). Переставить местами правую и левую часть массива. В функции...
C++ Запись числа прописью, нужна доработка Добрый день, дана задача: запись числа прописью Помогите доработать её, нужно вводить числа с клавиатуры и вывести результат в консоли Также нужно выводить копейки , пример 600.20 = шестьсот рублей... http://www.cyberforum.ru/cpp-beginners/thread1199624.html
C++ Не работает метод класса
#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; class Lines { private: char *line;
Написать класс с функцией поиска C++
Ребята помогите написать класс с функцией поиска, состоящий из 5 строк
C++ Контейнер std::vector http://www.cyberforum.ru/cpp-beginners/thread1199592.html
Помогите определить почему не работает задача. Оибку выбивает на строку k.push_back(0); #include <iostream> #include <math.h> #include <vector> #include <algorithm> using namespace std; ...
C++ Матрица и диагональные элементы в заданной квадратной матрицы значения некоторых диагональных элементов равны нулю. переставить строки или столбцы матрицы таким образом, чтобы диагональные элементы стали ненулевыми. если это... подробнее

Показать сообщение отдельно
Татаринов Артур
0 / 0 / 0
Регистрация: 24.05.2013
Сообщений: 4

Жемчужное ожерелье - C++

05.06.2014, 07:06. Просмотров 571. Ответов 5
Метки (Все метки)

Жемчужное ожерелье.
Круглое ожерелье состоит из N жемчужин. Каждая жемчужина либо черного (Ч), либо белого (Б) цвета. Получите количество всевозможных вариантов ожерелий, которые можно составить из N жемчужин.
Ожерелья являются замкнутыми. Это означает, например, что два ожерелья, состоящие из четырех жемчужин: Б-Б-Б-Ч и Б-Ч-Б-Б являются одинаковыми.

Формат входных данных
Содержит единственное целое число N (N≤8).

Формат выходных данных
Первая строка количество полученных ожерелий. В следующих строках описание ожерелий.

Пример
input.txt output.txt
3 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
#include <conio.h>
using namespace std;
typedef __int64 vec[100];
vec p,a,b; int sifra, kol=0,kount=0, c,kop=0;
 
void print(__int64 k)
{   
    for(int i=1; i<=k; i++)
        a[i]=p[i];
    for(int i=1; i<=k; i++)
    {
        for(int l=1; l<=k; l++)
        {
            if(a[i]!=b[i] && a[i+1]!=b[i+1] && a[i+2]!=b[i+2] && a[i+3]!=b[i+3]) kount++;
            else break;
            c=a[k];
            for(int h=k; h>=1; h--)
                a[h]=a[h-1]; 
            a[1]=c;
        }
    }
    if(kount==4) 
        for(int j=1; j<=k; j++)
        {
            b[kol]=a[kol]; 
            kol++;
        }
        kount=0;
}
 
void razm(__int64 n, __int64 k)
{
    __int64 i,j, flag;
    for(i=1;i<=k; i++) p[i]=0;
    print(k);
    do
    {
        flag=0;
        for(i=k; i>=1; i--)
            if(p[i]<n-1)
            {
                p[i]++;
                for(j=i+1; j<=k; j++)
                p[j]=0;
                print(k);
                flag=1;
                break;
            }
    }while(flag);
}
 
void main()
{
    int k,l=0;
    double kolvar;
    /*freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);*/
    cin>>k;
    memset(b,3,20);
    razm(2,k);
    for(int i=0; i<=2^k; i++)
    {
        for(int j=0; j<=2^k; j++)
        {
 
            if(kop==4) {kop=0;cout<<endl;}
            cout<<b[i]<<' ';
            kop++;
        }
 
        cout<<endl;
    }
    getch();
}
Перестановки все правильно делает. Я не могу реализовать замкнутый круг и отсеивать одинаковые значения. Помогите пожалуйста.
Вот пытался сделать в ф-ии print. Что то не получается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru