Asa's Website

B - Triangle

cpaojitp1

最終更新日

Table of Contents

Loading...

問題

https://onlinejudge.u-aizu.ac.jp/courses/lesson/2/ITP1/10/ITP1_10_B

問題文

三角形の 2 辺 a,ba, b とその間の角 CC から、三角形の面積 SS と周の長さ LLaa を底辺としたときの高さ hh を求めてね。

制約

サンプル

I/O 1

4 3 90
6.00000000 12.00000000 3.00000000

考察

まずは、角度を弧度法に直しておく。
C=π180×CC = \frac{\pi}{180} \times C でできる。

三角形の面積は S=12absinCS = \frac{1}{2} a b \sin C で求められる。
cc は、余弦定理から c=a2+b22abcosCc = \sqrt{a^2 + b^2 - 2ab \cos C} で求められるので、 L=a+b+cL = a + b + c とすれば OK。
図を描くと、 h=bsinCh = b \sin C で求められることがわかる。

あとは実装するだけ。

コード

https://onlinejudge.u-aizu.ac.jp/status/users/a01sa01to/submissions/1/ITP1_10_B/judge/6370921/C++17

int main() { int a, b, _c; cin >> a >> b >> _c; const double Pi = acos(-1); double c = _c * Pi / 180; cout << fixed << setprecision(10); cout << a * b * sin(c) / 2 << endl; cout << a + b + sqrt(a * a + b * b - 2 * a * b * cos(c)) << endl; cout << b * sin(c) << endl; return 0; }