![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
argamidon |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 2.12.2011 Репутация: нет Всего: нет |
заранее извиняюсь если ошибся темой или резделом.
даны целые числа h(0;12] и m[0;59], указывающие на момент времени. Помогите определить наименьшее время (число полных минут), которое пройдёт до момента встречи(совпадения) стрелок в одной точке. когда я пытался решить эту задачу, я шёл примерно по такому пути: определял точные угловые координаты часовой и минутной стрелки, и далее запускал цикл до тех пор пока угловое значение не будет равным. тоесть я прибавлял за каждую итерацию угловой расстояние к часовой стрелке по пол градуса(именно столько часовая проходит за одну минуту) и по 6 градусов к минутной стелке(именно столько она проходит за минуту). Кое-что конечно у меня получислоь и я хотел бы знать, если способ прощу и правильнее моего . Заранее извиняюсь за нечитаемость листинга(я только учусь). И получилось примерное такое:
|
|||
|
||||
AlexKozlov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 16.12.2008 Репутация: 1 Всего: 1 |
может вспомнить математику, составить и решить уравненьице? Или задача стоит сделать именно через ж?
да и кстати, числа с плавающей запятой лучше сравнить примерно так |a-b|<точность. Где точность - некое отличное от нуля, но достаточно малое для ваших целей число иначе вы можете промахнуться, в вашем случае на минуту. Это сообщение отредактировал(а) AlexKozlov - 2.12.2011, 13:12 |
|||
|
||||
argamidon |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 2.12.2011 Репутация: нет Всего: нет |
спасибо за советы.
![]() вот я и создал тему для того чтобы знать что за уравнеице надо составить. самому в башку ничего не приходит. ![]() Это сообщение отредактировал(а) argamidon - 2.12.2011, 13:32 |
|||
|
||||
Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 7 Всего: 17 |
Вообще-то задача решается достаточно просто
Сначала переведем часы и минуты в углы и посчитаем, насколько минутная стрелка отстает от часовой (именно отстает, если угол часовой стрелки составляет 297 градусов, а угол минутной - 324 градусов, то отставание составляет 360+297-324=333 градусов) Далее угол часовой стрелки увеличивается на 0.5 градуса, а минутной на 6 градусов. Итого расстояние между ними сокращается на 5.5 градуса в минуту. Следовательно минимальное число минут, через которое минутная стрелка догонит часовую составляет отставание минутной стрелки деленное на 5.5. Число полных минут - целая часть от этого числа. Использовать лучше не плавающие типы, а целые. Например
-------------------- Mirkes |
|||
|
||||
argamidon |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 2.12.2011 Репутация: нет Всего: нет |
Mirkes спасибо.
я пару дней назад уже решил эту задачу и получи точно такой же ответ 44 минуты. мой второй способ которым я решил задачу очень похож на ваш. правда я не использовал "встречную скорость 5,5 градусов". там где комметарии, это я пытался выводить формулу. уравнение тоесть , изза отсутствия которого я решал эту задачу с помощь цикла(первый пост). конечно коряво, и через Ж. но работает ![]() вот листинг =)
Это сообщение отредактировал(а) argamidon - 4.12.2011, 18:34 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |