![]() |
|
![]() ![]() ![]() |
|
turtles |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 17.2.2011 Репутация: нет Всего: нет |
Здравствуйте! Подскажите, как составить алгоритм по заданию или блок-схему?
Задание: Электронные часы показывают время в формате от 00:00 до 23:59. Подсчитать сколько раз за сутки случается так, что слева от двоеточия показывается симметричная комбинация для той, что справа от двоеточия (например, 02:20, 11:11 или 15:51). |
|||
|
||||
sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: нет Всего: 13 |
На бумажке посчитать не дано?
Так можно вывести все комбинации 1. цикл от 0 до 23 (пусть эти 2 цифры будут ab) 1.1 первое значение = 10a+b, второе 10b+a 1.2 записать в массив если max(a,b) < 6 2. вывести Считать еще проще хммм дай подумать... наверное ответ 16, что можно и устно подсчитать ![]() Псевдокод
Добавлено через 1 минуту и 10 секунд Надеюсь, объяснять почему так не нужно, знакомы с математикой? |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Что-то я не въезжаю. А зачем здесь алгоритм? 24 раза вроде получается по-любому
-------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
1000000dollars |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 6.10.2007 Репутация: 1 Всего: 8 |
Алгоритм примерно такой:
Рисовать блок-схему нет ни желания, ни времени. |
|||
|
||||
sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: нет Всего: 13 |
||||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Точно. Извиняюсь. В силу специфики своей работы с миллисекундами дело имею в осноном, а они всегда десятичные. ![]() -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
htoit |
|
||||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 27.8.2011 Репутация: нет Всего: нет |
|
||||
|
|||||
sQu1rr |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: нет Всего: 13 |
ошиблись в цикле, там <= 23 должно быть Да и вообще посмешили. По вашим суждениям, в сутках 23 часа, минут может быть 60, а автор о симметричности ничего совершенно не говорил Это сообщение отредактировал(а) sQu1rr - 1.10.2011, 00:03 |
||||||
|
|||||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Что-то все-таки очень уж простую задачу решаем. Я бы сделал просто и влоб:
1. Обнуляем счетчик часов H=0 и счетчик симметричных результатов N=0 2. Получаем старший разряд часов целочисленным делением с отбрасыванием остатка S=H\10 3. Считаем младший разряд часов L=H-S*10 4. Считаем десятичное представление количества минут, симметричное часам M=L*10+S 5. Если M<60 значит такое число минут существует в рамках традиционного шестидесятеричного представления. Присваиваем N=N+1 6. H=H+1 7. Если H==24 заканчиваем цикл, если нет - возвращаемся к пункту 2. 8. Выводим результат N -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
htoit |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 27.8.2011 Репутация: нет Всего: нет |
Да, не получается пока без отладки. По моим суждения в сутках 24 часа, но числа 24 в часах не бывает, как и числа 60 в минутах.
|
||||||||||
|
|||||||||||
sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: нет Всего: 13 |
Зачем все так усложнять, что бы посчитать кол-во достаточно убедиться, что b меньше 6
Это сообщение отредактировал(а) sQu1rr - 3.10.2011, 17:40 |
|||
|
||||
htoit |
|
||||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 27.8.2011 Репутация: нет Всего: нет |
Мысль замечательная, но как злопамятный человек, не мог не вспомнить поговорку "и на старуху бывает проруха": "int % 10 < 6" ![]() и еще " i != 24" -- проблемный стиль программирования, i < 24 дуракоустойчивей "++i" -- это тоже какая-то тревога. Может ничего страшного и не будет, но лучше таких конструкций вообще не употреблять. Тяжело читать. Это сообщение отредактировал(а) htoit - 10.10.2011, 05:55 |
||||
|
|||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 2 Всего: 85 |
htoit, это нормально. А в некоторых случаях, даже предпочтительнее (например в итераторах). Впрочем здесь без разницы, но по-принципу однотипности, применять вполне разумно. Добавлено через 7 минут и 17 секунд Ну и коль влез в эту тему (и как пример что значит "Тяжело читать"), мой вариант: http://liveworkspace.org/code/8085adb78d39...940c966390ee9ab ![]() |
|||
|
||||
sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: нет Всего: 13 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |