![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 28.11.2010
Сообщений: 7
|
![]()
помогите разобраться с основным алгоритмом..не могу .понять как реализовать задачу
дан целочисленный массив .найти в нем подпоследовательность максимальной длинны,представляющую собой арифметическую прогрессию. |
![]() |
![]() |
![]() |
#2 |
Delphi Warrior
Старожил
Регистрация: 15.08.2008
Сообщений: 2,502
|
![]()
Не понимаете как выявить арифметическую прогрессию?
или что?
Mess with the best, die like the rest.
![]() Лабораторные, курсовые на Delphi\Pascal\C++ ya.flex-freelance@yandex.ru Icq - 636-954-303 |
![]() |
![]() |
![]() |
#3 |
Регистрация: 28.11.2010
Сообщений: 7
|
![]()
да,как найти эту последовательность?
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 15.03.2011
Сообщений: 465
|
![]()
Для начала вычитаешь из второго элемента первый - это будет шаг. Если остальные элементы больше или меньше предыдущего на этот шаг, то это и будет арифметическая прогрессия! Например, 3 6 9 12 15 ...
|
![]() |
![]() |
![]() |
#5 |
Delphi Warrior
Старожил
Регистрация: 15.08.2008
Сообщений: 2,502
|
![]()
И ещё такой момент как
Если длина последовательности больше или равно двух То у вас как минимум два элемента прогрессии есть в любом случае (ну это так)
Mess with the best, die like the rest.
![]() Лабораторные, курсовые на Delphi\Pascal\C++ ya.flex-freelance@yandex.ru Icq - 636-954-303 |
![]() |
![]() |
![]() |
#6 |
Регистрация: 28.11.2010
Сообщений: 7
|
![]()
это понятно,
а вот как заставить программу понять,что например 1 2 3 4 6 8 1 2 1 1 1 1 4 8 12 16 20 из этого что -то вообще лишнее,а где- то прогрессия,в которой больше элементов |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
![]()
берешь первые 2 элемента.
ищешь шаг прогрессии как к = а(2)-а(1) дальше бежишь циклом от 3 элемента до последнего. если a(n)-a(n-1)=к, значит все еще элементы прогрессии. если a(n)-a(n-1) <> к, значит прогрессия закончилась элементом a(n-1). Прерываем работу цикла. Вроде ничего не перепутал ![]()
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]()
в коде выглядит как-то так:
Код:
Спасибо, Серж! Забыл про границу массива. Хотя равенство здесь необязательно Цитата:
Правильно поставленная задача - три четверти решения.
Последний раз редактировалось DiemonStar; 14.03.2012 в 11:29. |
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
если довести до ума алгоритм DiemonStar,
получаем такой код: Код:
|
![]() |
![]() |
![]() |
#10 |
Регистрация: 28.11.2010
Сообщений: 7
|
![]()
так.хорошо,за это спасибо,но вот если задача стоит на с++ написать,там же нельзя сделать безразмерный массив
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
С. Вывод символьного массива - результат удручающе не понятен | Алексей Денисов | Помощь студентам | 5 | 05.07.2011 10:30 |
Конвертор валют... не понятен принцип работы | mid | Помощь студентам | 7 | 25.02.2011 23:33 |
не понятен смысл функции *.getTime() | IQDDD | JavaScript, Ajax | 4 | 23.06.2009 19:03 |
не понятен урок! | Инспектор ГУЛ | Помощь студентам | 9 | 28.05.2009 14:13 |
Не понятен вопрос(системное программирование) | student_63 | Помощь студентам | 2 | 03.04.2008 20:21 |