![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 05.11.2009
Сообщений: 7
|
![]()
Здравствуйте помогите мне пожалуйста с данной задачкой:
Вводиться натурально число. Проверить есть ли в введённом числе 6 подряд идущих единиц. Вот мой код задачи: Код:
к Примеру число 211111156 - должно сказать что число верно, а число к примеру 21112111 - не верно. Помогите пожалуйста, заранее очень вам благодарен. Последний раз редактировалось Stilet; 06.11.2009 в 10:04. |
![]() |
![]() |
![]() |
#2 |
Максим Николаев
Форумчанин
Регистрация: 15.02.2009
Сообщений: 170
|
![]()
В таком случае лучше работать с числом как с текстом. И просто найти в строке s подстроку '111111' - реализуется одной строкой...
NeshSoft. Программирование на заказ для студентов. Delphi/Pascal. Подробнее на сайте neshsoft.narod.ru
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
![]()
1. Переводим число в строку (IntToStr);
2. Объявляем счетчик подсчета количества цифр '1' ; 3. Cчитываем строку посимвольно и сравниваем с символом '1'.При совпадении увеличиваем счетчик на еденицу и проверяем не достиг ли счетчик значения 6.(если достиг - значит есть шесть едениц подряд.Далее можно или закончить проверку или же продолжать проверку далее - это надо уточнить условием задачи) Если нет совпадения с '1' счетчик сбрасываем в "ноль" и продолжаем проверку. Вот такой вот алгоритм. Программная реализация не должна вызывать затруднения.
И не сомневайся даже ... отдых - кайф, работа - лажа!
|
![]() |
![]() |
![]() |
#4 | |
Новичок
Джуниор
Регистрация: 05.11.2009
Сообщений: 7
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
![]()
Вот и используй цикл по условию - " до конца строки" в методе #3.
И не сомневайся даже ... отдых - кайф, работа - лажа!
|
![]() |
![]() |
![]() |
#6 | |
Новичок
Джуниор
Регистрация: 05.11.2009
Сообщений: 7
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#7 | |
Максим Николаев
Форумчанин
Регистрация: 15.02.2009
Сообщений: 170
|
![]() Цитата:
В любом случае я согласен с DeKot, цикл можно применить более эффективно. А использовать столько раз деление - неразумно.
NeshSoft. Программирование на заказ для студентов. Delphi/Pascal. Подробнее на сайте neshsoft.narod.ru
|
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
а что должна выдать программа, если в числе 7 (или более единиц подряд!?
![]() а так вот простенький вариант: Код:
|
![]() |
![]() |
![]() |
#9 | |
Новичок
Джуниор
Регистрация: 05.11.2009
Сообщений: 7
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
имя у этой переменной выбрано так, чтобы можно было догадаться, для чего она нужна: Is6DigitFound - в вольном перевод это "Найдено6цифр" Это своеобразный флажок - который мы устанавливаем в ИСТИНУ, если нашли шесть единиц подряд. он же проверяется в цикле (в операторе UNTIL), поэтому, если мы нашли 6 единиц - то всё, выходим из цикла. и последнее, по этой переменной мы решаем, какое сообщение выдавать, Yes или No |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск двух одинаковых строк идущих последовательно | stasbz | Microsoft Office Excel | 4 | 21.06.2009 18:40 |
Массив чисел (найти 4 идущих подряд чётных числа) | SeregaKo | Общие вопросы Delphi | 2 | 18.05.2009 23:09 |
Изобрадение идущих часов | StudeHt | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 03.05.2009 19:21 |
найти подпоследовательность из подряд идущих элементов с наибольшей суммой на С++ | aj_tramp | Помощь студентам | 2 | 12.12.2008 08:57 |