Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите решить,очень нужно 
:(
    Опции темы
vip57
Дата 4.6.2009, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.6.2009

Репутация: нет
Всего: нет



Решите плиз задачку,очень нужно......В данном числе m найти максимальную по длине подпоследовательность так,чтобы элементы были в возрастающем порядке..... 
PM MAIL   Вверх
jonie
Дата 4.6.2009, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



чего за последовательности такие в числе m?


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
vip57
Дата 4.6.2009, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.6.2009

Репутация: нет
Всего: нет



вот такие нам задачи дает информатик,и пойди догодайся что он хочет smile
PM MAIL   Вверх
zim22
Дата 4.6.2009, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(vip57 @  4.6.2009,  18:10 Найти цитируемый пост)
вот такие нам задачи дает информатик,и пойди догодайся что он хочет

включаю мозг:
число 91283456781

подпоследовательности обнаружены:
9
128
345678
1
максимальная подпоследовательность: 345678



--------------------
PM MAIL   Вверх
jonie
Дата 4.6.2009, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



zim22 а может макс последовательность единичных битов ?) если бы было написано макс последовательность цифр в числе, тогда ябы согласился.. а так-гадания...
в любом случае выделение символа из строки как-то так делаться может:
Код

while(n) {
 char chislo = n%10;
 n/=10;
}


ну а далее создаем массивчик char digit[16] и в него пихаем все цифры из числа, потом в нем ищем макс последовательность обычным итеративным алгоритмом.



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Курсант
Дата 5.6.2009, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 21.2.2009
Где: Балашиха или Воро неж

Репутация: 1
Всего: 4



Вот, сляпил, проверил, работает... Значит дело тут вот в чем - оно выдает список всех последовательностей максимальной длины.. То есть если максимальная длина 1 - по одному символу получите... Если 2 - все двухсимвольные последовательности, и т.п... 
Вводится на самом деле не число, а строка, но это не заметно smile Foolproof не делал - то есть если ввести последовательность букв, он обработает их как ASCII .. Вот собственно и все... Думаю при желании сможете сами число перевести в строку, если вводить надо обязательно в число...

Код

#include <iostream>
using namespace std;

int main()
{
    char Number[80];
    cout << "Enter the number: ";
    cin >> Number;
    int Counter, currCount, MaxCount, Pointer;
    Pointer = 0;
    currCount = 1;
    MaxCount = 1;
    for (Counter = 1; Counter < strlen(Number); Counter++)
    {
         if (Number[Counter] == (Number[Counter-1] + 1))
             currCount++;
            else 
                currCount = 1;
            if (currCount>MaxCount)
                MaxCount = currCount;
    }
    cout << "Maximum length is" << MaxCount << endl;
    currCount = 1;
    cout << "Maximum length substrings is: " << endl;
    for (Counter = 1; Counter < strlen(Number); Counter++)
    {
         if (Number[Counter] == (Number[Counter-1] + 1))
             currCount++;
            else
            {
                if (currCount == MaxCount)
                {
                    char ch;
                    ch = Number[Counter];
                    if (Counter < 80) Number[Counter] = 0;
                    cout << Number+Pointer << endl;
                    if (Counter < 80) Number[Counter] = ch;
                }
                Pointer = Counter;
                currCount = 1;
            }
    }
    if (currCount == MaxCount)
        cout << Number + Pointer << endl;
    int x;
    cin >> x;
}


Добавлено через 7 минут и 9 секунд
мда, соответственно если выводить только одну последовательность (а именно последнюю встретившуюся), то программа укорачивается вдвое, будет один цикл... Еще можно использовать массив индексов, тогда тоже один цикл, сразу не сообразил, решил напрямую... Если сильно надо - то скажите - поправлю...
PM ICQ Skype   Вверх
Robix
Дата 6.6.2009, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 1.6.2009

Репутация: нет
Всего: нет



Чтобы не плодить новую тему. Может быть и мой простой вопрос решите. Я еще только только осваиваю C++.
--------------------
Короче есть массив типа int,  а именно:

int result[3] = {12, 34, 56, 78 }; 

А есть просто переменная int:

int a = 0; 

Задача состоит в том, чтобы как можно более оптимальным способом добится того, чтобы переменная
int a   содержала в себе все значения из массива по порядку, то есть :

int a = 12345678; 
--------------------
Мож какие спец. функции есть.


    


Это сообщение отредактировал(а) Robix - 6.6.2009, 17:15
PM MAIL   Вверх
gosn1ck
Дата 7.6.2009, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 18.4.2009

Репутация: 1
Всего: 1



оптимальный, не оптимальный, но я только до такого додумался smile
Код

  int result[3] = {12, 34, 56 };
  int a = 0;

  for (int i = 0, j = 10000; i < 3; i++, j /= 100) {
      a += result[i]*j;
  }

  cout << a;


Это сообщение отредактировал(а) gosn1ck - 7.6.2009, 11:34
PM MAIL ICQ   Вверх
mes
Дата 7.6.2009, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



только производное от :
Код

int result[4] = {12, 34, 56, 78 }; // 4 а не 3
a = ((result[0]*100+result[1])*100+result[2])*100+result[3];

если цифры не обязательно 2хзначные, значит нужно вычислять длину добавляемого числа,
если длина массива не постоянна, то организовывать цикл,
плюс к тому - Вы должны предостречься от переполнения переменной.



Это сообщение отредактировал(а) mes - 7.6.2009, 11:35


--------------------
PM MAIL WWW   Вверх
Robix
Дата 7.6.2009, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 1.6.2009

Репутация: нет
Всего: нет



Спасибо gosn1ck и mes !
Классно сделали. Цифры будут все двузначные и жестко заданные.  
PM MAIL   Вверх
azesmcar
Дата 10.6.2009, 18:49 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(dominik9999 @  10.6.2009,  18:33 Найти цитируемый пост)
привет всем!!!

помогите - очень прошу!!!
написать программу для получения точного времени с временного сервера.

подскажите пожалуйста код для подключению к серверу и взятия оттуда времени.
и еще - как реализовать запись информации в файл?
киньте код пожалуйста!
заранее большое спасибо!!! 

Поздравляю, ваш вопрос выйграл звание самого неуместного, ненужного и никчемного вопроса года smile 
Приз - право задать свой вопрос, в своей теме и соответсвующем разделе.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0580 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.