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

Дан одномерный целочисленный массив. Определить, можно ли получить из данной последовательности симметричную (палиндром) путем перестановки в исходной - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Произведение матрицы на вектор http://www.cyberforum.ru/cpp-beginners/thread1058990.html
очень нужно ,пожалуйста Задача на Произведение динамической матрицы на вектор. и нахождение результата надо оформить функцией
C++ стеки Здравствуйте. Я создал шаблон класса стек. Как мне перегрузить операторы -- и += для извлечение и добавление элемента в стек. И нужно обработать исключительные ситуации возникающие при добавление элементов в стек (т.е. когда стек полон) #ifndef STACK_H #define STACK_H * #include <cassert> // для assert #include <iostream> * #include <iomanip> // для setw http://www.cyberforum.ru/cpp-beginners/thread1058987.html
Рисование квадрата функцией Gfx_RenderQuad C++
Вроде бы все обозначил расписал да все ровно не показывает квадрат не в какую помогите пож разобраться в чем ошибка потому как компилятор вообще их не видит /* ** Haaf's Game Engine 1.8 ** Copyright (C) 2003-2007, Relish Games ** hge.relishgames.com ** ** hge_tut01 - Minimal HGE application
Удалить каждый второй элемент стека C++
Заполнить стек значениями произвольно выбранного типа. Удалить каждый второй элемент стека. Есть стек,как удалять элементы? #include <stdio.h> #include <conio.h> #include <iostream.h> struct pointer { int d;
C++ Класс для бинарного дерева http://www.cyberforum.ru/cpp-beginners/thread1058977.html
Здравствуйте! Помогите, пожалуйста, я не вижу ошибок и не понимаю, почему программа не видит меню, не работает так, как нужно( Общее задание было такое: "Описать класс, реализующий бинарное дерево, обладающее возможностью добавления новых элементов, удаления существующих, поиска элемента по ключу, а также последовательного доступа ко всем элементам. Написать программу, использующую этот...
C++ Обьясните как работает программа Объясните как работает эта программа) 1. Дана стpока символов. Пpизнак конца стpоки - символ '\n' (пеpевод стpоки). Стpока состоит из слов, pазделенных пpобелами.) Вывести самое коpоткое слово и его длину #include <stdio.h> #include <conio.h> #define DLSTR 80 void main() { char str; подробнее

Показать сообщение отдельно
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
28.12.2013, 18:04     Дан одномерный целочисленный массив. Определить, можно ли получить из данной последовательности симметричную (палиндром) путем перестановки в исходной
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
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
#include <ctime>
#include <cstdlib>
using std::cin;
using std::cout;
 
const int n = 6;
 
int main()
{
    int a[n];
    srand (time(0));
    for (int i=0; i<n; i++)
    {
        a[i]=rand()%3+1;
        cout <<a[i] <<' ';
    }
    cout <<'\n';
    bool f;
    int b = 0;
    int nt;
    for (int i=0; i<n; i++)
    {
        f = false;
        for (int j=0; j<n; j++)
        {
            if (i!=j && a[i]==a[j])
            {
                f = true;
            }
        }
        if (!f)
        {
            b++;
            nt = i;
        }
    
    }
    if ((n%2==0 && b!=0) || (n%2==1 && b>1))
    {
        cout <<"No\n";
    } 
    else
    {
        int k = 0;
        int tmp;
        if (n%2!=0 && b==1)
        {
            tmp = a[nt];
            a[nt] = a[n/2];
            a[n/2] = tmp;
        }
        for (int i=0; i<n/2; i++)
        {
            f = false;
            for (int j=i+1; j<n-k; j++)
            {
                if (a[i]==a[j])
                {
                    tmp = a[j];
                    a[j] = a[n-k-1];
                    a[n-k-1] = tmp;
                    ++k;
                    f = true;
                    break;
                }
            }
        }
        f = true;
        for (int i=0; i<n/2; i++)
        {
            if (a[i]!=a[n-i-1])
            {
                f = false;
                break;
            }
        }
        if (f)
        {
            cout <<"Yes\n";
            for (int i=0; i<n; i++)
                cout <<a[i] <<' ';
            cout <<'\n';
        }
        else cout <<"No\n";
    }
    return 0;
}
 
Текущее время: 10:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru