تابعی بنویسید که بررسی کند آیا با اطلاعات دادهشده میتوان یک مثلث قائمالزاویه ساخت یا خیر.
- اگر اطلاعات شامل زاویه باشد، باید بررسی کنید که آیا میتوان زاویه ۹۰ درجه داشت یا خیر.
- اگر اطلاعات شامل اضلاع باشد، باید بررسی کنید که آیا رابطه فیثاغورث برقرار است یا خیر.
- مثلث باید دقیقاً ۳ ضلع یا ۳ زاویه داشته باشد (مگر اینکه اطلاعات ناقص باشد).
- اگر اطلاعات ناقص باشد (مثلاً فقط ۲ ضلع داده شده)، باید بررسی کنید آیا میتوان ضلع سوم را طوری انتخاب کرد که مثلث قائمالزاویه شود.
مثال
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
# ضلع سوم میتواند ۳ باشد
Assert.True(Backendbaz.IsRightAngle(new[] { 30, 60 }, "angle")); Assert.False(Backendbaz.IsRightAngle(new[] { 20, 20, 20, 20 }, "angle")); Assert.True(Backendbaz.IsRightAngle(new[] { 4, 5, 3 }, "side")); Assert.True(Backendbaz.IsRightAngle(new[] { 4, 5 }, "side")); Assert.True(Backendbaz.IsRightAngle(new[] { 30, 60, 90 }, "angle")); Assert.True(Backendbaz.IsRightAngle(new[] { 90 }, "angle")); Assert.False(Backendbaz.IsRightAngle(new[] { 90, 90, 90 }, "angle")); Assert.False(Backendbaz.IsRightAngle(new[] { 4, 5, 6 }, "side")); Assert.True(Backendbaz.IsRightAngle(new[] { 43 }, "angle"));
نظرات