تابعی بنویسید که بررسی کند آیا با اطلاعات دادهشده میتوان یک مثلث قائمالزاویه ساخت یا خیر.
- اگر اطلاعات شامل زاویه باشد، باید بررسی کنید که آیا میتوان زاویه ۹۰ درجه داشت یا خیر.
- اگر اطلاعات شامل اضلاع باشد، باید بررسی کنید که آیا رابطه فیثاغورث برقرار است یا خیر.
- مثلث باید دقیقاً ۳ ضلع یا ۳ زاویه داشته باشد (مگر اینکه اطلاعات ناقص باشد).
- اگر اطلاعات ناقص باشد (مثلاً فقط ۲ ضلع داده شده)، باید بررسی کنید آیا میتوان ضلع سوم را طوری انتخاب کرد که مثلث قائمالزاویه شود.
مثال
is_right_angle([30, 60], "angle") ➞ True
# زاویه سوم میتواند ۹۰ درجه باشد
is_right_angle([20, 20, 20, 20], "angle") ➞ False
# بیش از ۳ ضلع دارد
is_right_angle([4, 5, 3], "side") ➞ True
# 3² + 4² = 5²
is_right_angle([4, 5], "side") ➞ True
# ضلع سوم میتواند ۳ باشد
EXPECT_EQ(IsRightAngle({30, 60}, "angle"), true); EXPECT_EQ(IsRightAngle({20, 20, 20, 20}, "angle"), false); EXPECT_EQ(IsRightAngle({4, 5, 3}, "side"), true); EXPECT_EQ(IsRightAngle({4, 5}, "side"), true); EXPECT_EQ(IsRightAngle({30, 60, 90}, "angle"), true); EXPECT_EQ(IsRightAngle({90}, "angle"), true); EXPECT_EQ(IsRightAngle({90, 90, 90}, "angle"), false); EXPECT_EQ(IsRightAngle({4, 5, 6}, "side"), false); EXPECT_EQ(IsRightAngle({43}, "angle"), true);
نظرات