Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2011, 12:57   #1
paul0
Пользователь
 
Регистрация: 21.03.2011
Сообщений: 27
По умолчанию последовательность чисел

дана последовательность из 20 целых чисел. определить количество чисел в наиболее длинной подпоследовательности из подряд идущих 0(например для 250070008055 ответ 3)
paul0 вне форума Ответить с цитированием
Старый 12.04.2011, 13:00   #2
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Сообщений: 140
По умолчанию

Код:
i := 1;
max := 0;
len := 0;

while i <= 20 do begin
  while a[i] = 0 and (i <= 20) do begin Inc(len); Inc(i); end;
  if len > max then max := len;
  len := 0;
  Inc(i);
end;
Код на паскале.

Последний раз редактировалось Asker13; 12.04.2011 в 13:10.
Asker13 вне форума Ответить с цитированием
Старый 12.04.2011, 13:03   #3
paul0
Пользователь
 
Регистрация: 21.03.2011
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Asker13 Посмотреть сообщение
Код:
i := 1;
max := 0;
len := 0;

while i <= 20 do begin
  while a[i] = 0 and (i <= 20) do begin Inc(len); Inc(i); end;
  if len > max then max := len;
  len := 0;
  Inc(i);
end;

а это на каком языке?
paul0 вне форума Ответить с цитированием
Старый 12.04.2011, 13:30   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

С++
Код:
#include <iostream>
using namespace std;

int main () 
{
    int Array[20] = {2, 5, 0, 0, 7, 0, 0, 0, 8, 0, 5, 5, 1, 5, 7, 0, 0, 6, 0, 9};
    int length = 0;
    int max = 0;
    int i = 0;
    for (int i = 0; i < 20; i++)
    {
        int j = i;
        while (Array[j] == 0)
        {
            length++;
            j++;
        }
        if (length > max) max = length;
        length = 0;
        i = j;
    }
    cout << max << endl;
    return (0);
}
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062

Последний раз редактировалось Mandrivnyk; 12.04.2011 в 13:33.
Mandrivnyk вне форума Ответить с цитированием
Старый 12.04.2011, 13:48   #5
paul0
Пользователь
 
Регистрация: 21.03.2011
Сообщений: 27
По умолчанию

спасибо за С++!!! то что нужно)))
paul0 вне форума Ответить с цитированием
Старый 12.04.2011, 14:09   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

подобные реализации часто страдают тем, что не обрабатывают финальную последовательность..

проверьте, что выдаст программа при
Код:
   int Array[20] = {2, 5, 0, 0, 7, 0, 0, 0, 8, 0, 5, 5, 1, 5, 0, 0, 0, 0, 0, 0};

p.s. я НЕ УТВЕРЖДАЮ, что данный код имеет подобную ошибку!
просто нет комплятора C++ - не могу проверить. и знаний C не хватает, чтобы в уме "прогнать" код...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.04.2011, 14:36   #7
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
подобные реализации часто страдают тем, что не обрабатывают финальную последовательность..

проверьте, что выдаст программа при
Код:
   int Array[20] = {2, 5, 0, 0, 7, 0, 0, 0, 8, 0, 5, 5, 1, 5, 0, 0, 0, 0, 0, 0};

p.s. я НЕ УТВЕРЖДАЮ, что данный код имеет подобную ошибку!
просто нет комплятора C++ - не могу проверить. и знаний C не хватает, чтобы в уме "прогнать" код...
Выдал "6" -)
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 12.04.2011, 15:36   #8
paul0
Пользователь
 
Регистрация: 21.03.2011
Сообщений: 27
По умолчанию

ну мне надо сделать чтоб пользователь сам вводил последовательность какую захочет
paul0 вне форума Ответить с цитированием
Старый 12.04.2011, 15:39   #9
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Сообщений: 140
По умолчанию

Наверное на C++ это выглядит так:
Код:
int Array[20];
for (int i = 0; i < 20; i++) cin >> Array[i];

Последний раз редактировалось Asker13; 12.04.2011 в 17:01. Причина: Исправил.
Asker13 вне форума Ответить с цитированием
Старый 12.04.2011, 16:22   #10
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Код:
for (new i = 0; i < 20; i++) cin >> Array[i];
о_О
... я чего-то не знаю о типах переменных в С++?
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++. Последовательность чисел Medik07 Помощь студентам 2 23.12.2011 20:54
Delphi. найти последовательность всех чисел от 1 до n, кроме чисел с одинаковыми цифрами bayda06 Помощь студентам 7 01.07.2010 18:18
Паскаль. Последовательность чисел. mDv Помощь студентам 7 24.11.2009 17:44
написать последовательность чисел 10 8 6 4 2 0 Neytron Паскаль, Turbo Pascal, PascalABC.NET 7 11.06.2009 12:17