|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.03.2012, 21:10 | #1 |
Регистрация: 28.11.2010
Сообщений: 7
|
не понятен алгоритм(((
помогите разобраться с основным алгоритмом..не могу .понять как реализовать задачу
дан целочисленный массив .найти в нем подпоследовательность максимальной длинны,представляющую собой арифметическую прогрессию. |
13.03.2012, 21:20 | #2 |
Delphi Warrior
Старожил
Регистрация: 15.08.2008
Сообщений: 2,502
|
Не понимаете как выявить арифметическую прогрессию?
или что?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++ ya.flex-freelance@yandex.ru Icq - 636-954-303 |
13.03.2012, 22:01 | #3 |
Регистрация: 28.11.2010
Сообщений: 7
|
да,как найти эту последовательность?
|
13.03.2012, 22:28 | #4 |
Форумчанин
Регистрация: 15.03.2011
Сообщений: 465
|
Для начала вычитаешь из второго элемента первый - это будет шаг. Если остальные элементы больше или меньше предыдущего на этот шаг, то это и будет арифметическая прогрессия! Например, 3 6 9 12 15 ...
Помог - жми на весы!
ByAlex89@mail.ru |
13.03.2012, 22:30 | #5 |
Delphi Warrior
Старожил
Регистрация: 15.08.2008
Сообщений: 2,502
|
И ещё такой момент как
Если длина последовательности больше или равно двух То у вас как минимум два элемента прогрессии есть в любом случае (ну это так)
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++ ya.flex-freelance@yandex.ru Icq - 636-954-303 |
14.03.2012, 07:03 | #6 |
Регистрация: 28.11.2010
Сообщений: 7
|
это понятно,
а вот как заставить программу понять,что например 1 2 3 4 6 8 1 2 1 1 1 1 4 8 12 16 20 из этого что -то вообще лишнее,а где- то прогрессия,в которой больше элементов |
14.03.2012, 08:42 | #7 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
берешь первые 2 элемента.
ищешь шаг прогрессии как к = а(2)-а(1) дальше бежишь циклом от 3 элемента до последнего. если a(n)-a(n-1)=к, значит все еще элементы прогрессии. если a(n)-a(n-1) <> к, значит прогрессия закончилась элементом a(n-1). Прерываем работу цикла. Вроде ничего не перепутал
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
14.03.2012, 08:53 | #8 | |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
в коде выглядит как-то так:
Код:
Спасибо, Серж! Забыл про границу массива. Хотя равенство здесь необязательно Цитата:
Правильно поставленная задача - три четверти решения.
Последний раз редактировалось DiemonStar; 14.03.2012 в 11:29. |
|
14.03.2012, 10:26 | #9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
если довести до ума алгоритм DiemonStar,
получаем такой код: Код:
|
14.03.2012, 17:32 | #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 |