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

Найти отрезок массива-палиндром, в котором первое число равно последнему, второе предпоследнему и т.д. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ cout не работает http://www.cyberforum.ru/cpp-beginners/thread231509.html
Здравствуйте. Такая программа: // Prog.cpp: определяет точку входа для консольного приложения. // #define WINVER 0x501 #include "stdafx.h" #include <afxwin.h> #include <iostream> int main(...
C++ в 9-00(мск) начнется экзамен, нужна будет небольшая п0мощь должна быть несложная задачка, думаю , что не решу, скину сюда) http://www.cyberforum.ru/cpp-beginners/thread231491.html
Алгоритм игры в Точки C++
Народ, выручайте. Очень нужен алгоритм игры в Точки. Я нашел вот эту страницу, читал несколько раз, ничего не понял: http://pointsgame.narod.ru/ Было бы хорошо если кто выложил на С или С++?
C++ Написать комментарии к программе
Написать комментарии к программе по возможности как можно подробней!!! //--------------------------------------------------------------------------- #include <vcl.h> #include<iostream.h>...
C++ Отладка программы http://www.cyberforum.ru/cpp-beginners/thread231462.html
Общая постановка. Пользовательский класс Х должен содержать необходимые элементы - данные, которые создаются в динамической области памяти, конструктор для их создания (операция new) и установки их...
C++ Блок схемы. Ребята, помогите нарисовать блок схемы или хотя бы чуток объяснить что откуда и куда....т.е. пояснить алгоритм написания.СПАСИБО!!! №1 Дан текст произвольной длины, оканчивающийся точкой с... подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
20.01.2011, 13:22
Да, ежели попроще, то еще вот так можно:
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
//////////////////////////////////////////////////////////////////////////////////////
//Перевертыши. Дан числовой массив А[1...n]. Найти отрезок массива максимальной длины, 
//в котором первое число равно последнему, второе предпоследнему и т.д. 
//Определить длину и вывести элементы найденного отрезка на экран. на борланде
//////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <iostream>
#include <vector>
//////////////////////////////////////////////////////////////////////////////////////
typedef int                 T_num;
typedef std::vector<T_num>  T_nums;
//////////////////////////////////////////////////////////////////////////////////////
bool  is_palindrom(const T_nums&  nums)
{
    return  std::equal(nums.begin(), nums.end(), nums.rbegin());
}
//////////////////////////////////////////////////////////////////////////////////////
void  print_max_palindrom(const T_nums&  nums)
{
    T_nums  max_palindrom;
    for(size_t  i = 0; i < nums.size(); ++i)
    {        
        for(size_t  j = nums.size() - 1; j > i + max_palindrom.size(); --j)
        {            
            T_nums  subvect_cur(nums.begin() + i, nums.begin() + j);
            if(is_palindrom(subvect_cur))               
            {
                max_palindrom = subvect_cur;
            }        
        }    
    }
    
    std::cout << "Максимальный палиндром длиной "
              << max_palindrom.size()
              << " имеет вид: "
              << std::endl;
 
    std::copy(max_palindrom.begin(), max_palindrom.end(), 
              std::ostream_iterator<T_nums::value_type>(std::cout, "\t"));    
    
    std::cout << std::endl;
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));   
    srand(static_cast<unsigned>(time(0)));  
    const int VECT_SIZE = 30;
    struct  T_gen_with_mod
    {
        const T_num MOD_;
        //-----------------------------------------------------------------------------
        T_gen_with_mod(T_num mod) : MOD_(mod)
        {}
        //-----------------------------------------------------------------------------
        T_num  operator() ()
        {
            return  rand() % MOD_;
        }
    };
 
    T_nums  nums;
    std::generate_n(std::back_inserter(nums), VECT_SIZE, T_gen_with_mod(VECT_SIZE));
 
    std::copy(nums.begin(), nums.end(), 
              std::ostream_iterator<T_nums::value_type>(std::cout, "\t"));
 
    print_max_palindrom(nums);    
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru