7.10.2011 / 15:22 | |
Freddy Пользователь Сейчас: Offline
Имя: Игорь Откуда: Воронеж Регистрация: 30.01.2010
| mrEDitor, тогда формулируй правильнее, изменение length и изменение ссылки на объект - далеко не одно и то же.
|
7.10.2011 / 16:29 | |
Melodic Пользователь Сейчас: Offline
Регистрация: 16.09.2011
| Freddy (17.09.2011/22:16)Идея в следующем: введём систему координат, совместив её начало с центром окружности, тогда абсцисса и ордината разобьют окружность на четыре равные части, проведём прямые y=x и y=-x, тогда окружностьFreddy, проблемка )) сектора у меня расположены не так)) т.е. окружность на секторы делят не оси и у=х,у=-х. Эти линии делят сектора пополам, а не являются границами секторов) Красные линии границы секторов.
Изменено Melodic (7.10 / 16:33) (всего 3 раза)
Прикрепленные файлы: секторы.png (2.47 кб.) Скачано 242 раза |
7.10.2011 / 21:59 | |
Freddy Пользователь Сейчас: Offline
Имя: Игорь Откуда: Воронеж Регистрация: 30.01.2010
| Melodic, принцип решения тот же, но теперь окружность разбивается прямыми y=0,5x, y=2x, y=-0,5x, y=-2x. Отсюда смотрим, например, если координаты конца вектора (6;2), так как ордината меньше, чем половина от абсциссы, то вектор лежит в первом секторе, если дана точка (2;6), то ордината больше, чем удвоенное произведение абсциссы, значит вектор лежит в третьем секторе.
|
8.10.2011 / 11:50 | |
Melodic Пользователь Сейчас: Offline
Регистрация: 16.09.2011
| Freddy, можно это в коде?) с геометрией всегда проблемы были |
10.10.2011 / 19:50 | |
Freddy Пользователь Сейчас: Offline
Имя: Игорь Откуда: Воронеж Регистрация: 30.01.2010
| Melodic, private static int getIndex(int x, int y) {
if (x > 0)
if (y > 0)
if (x > 2 * y)
return 1;
else if (y > 2 * x)
return 3;
else
return 2;
else if (x < 2 * Math.abs(y))
return 12;
else if (Math.abs(y) < 2 * x)
return 10;
else
return 11;
else
if (y>0)
if(2*Math.abs(x)<y)
return 4;
else if(2*y<Math.abs(x))
return 6;
else
return 5;
else if (y < 2*x)
return 9;
else if (x<2*y)
return 7;
else return 8;
}
|
16.11.2011 / 19:06 | |
XakepPRO Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| Я в шоке. Сегодня увидел задачу: Программа считывает двузначное число и выводит через пробел каждую цифру отдельно. Входные данные: Натуральное число из промежутка от 10 до 99 включительно. Выходные данные: Два одноцифровых числа, разделенных пробелом.Лимит времени: 0.3 секунды Лимит памяти: 16 MB Казалось бы, ничего сложного нет, вывести N div 10 и N%10 (N div 10, N mod 10). Но нет, по времени по проходит. Можно прочитать как строку и вывести первый и второй символ этой строки, но тоже не подходит. Писать на асме нельзя |
16.11.2011 / 19:09 | |
JUST_IF Пользователь Сейчас: Offline
Регистрация: 30.04.2011
| XakepPRO, интересно
|
16.11.2011 / 19:18 | |
XakepPRO Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| JUST_IF (16.11.2011/18:09) XakepPRO, интересноЯ после этой задачи окончательно понял, что я нуб |
16.11.2011 / 19:19 | |
JUST_IF Пользователь Сейчас: Offline
Регистрация: 30.04.2011
| XakepPRO, не один ты, как это сделать? |
16.11.2011 / 19:42 | |
LPzhelud Пользователь Сейчас: Offline
Имя: Коля Откуда: Москва Регистрация: 02.06.2010
| XakepPRO, Странные вы, я на яве за 300 миллисекунд 20 раз выведу это, а не 1, да и только потому, что вывод в консоль медленный
__________________
Эль Презеденте Изменено LPzhelud (16.11 / 20:18) (всего 1 раз) |