Показать сообщение отдельно
Старый 19.10.2011, 16:56  
PLanTeX
Старичок форума
Аватар для PLanTeX
OFFLINE
Регистрация: 03.03.2011
Сообщений: 180
Благодарностей:
2,824 всего
Мнения: + 7139
Репутация: 8467
Отправить сообщение для PLanTeX с помощью Skype™

double r, a, b, c; // входные данные

double x0 = -a*c/(a*a+b*b), y0 = -b*c/(a*a+b*b);
if (c*c > r*r*(a*a+b*b)+EPS)
puts ("no points");
else if (abs (c*c - r*r*(a*a+b*b)) < EPS) {
puts ("1 point");
cout << x0 << ' ' << y0 << '\n';
}
else {
double d = r*r - c*c/(a*a+b*b);
double mult = sqrt (d / (a*a+b*b));
double ax,ay,bx,by;
ax = x0 + b * mult;
bx = x0 - b * mult;
ay = y0 - a * mult;
by = y0 + a * mult;
puts ("2 points");
cout << ax << ' ' << ay << '\n' << bx << ' ' << by << '\n';
}

даешь стим акк)

Мой скайп zzzkostyanzzz (БЕЗ ТОЧКИ, С ТОЧКОЙ ФЕЙК, ВАС ОБМАНУТ)
 
Ответить с цитированием
Сказали спасибо:
StalKer512 (17.12.2011)