ত্রিভুজের তিন বাহুর দৈর্ঘ্য জানলে হিরোনের সূত্র ব্যবহার করে ক্ষেত্রফল বের করা।
হিরোনের সূত্র
- অর্ধ-পেরিমিটার (s): s = (a + b + c) / 2
- ক্ষেত্রফল (A): A = √[s(s-a)(s-b)(s-c)]
সমাধান
const areaOfTriangle = (sides) => {
const [a, b, c] = sides;
// ত্রিভুজ অসমতা চেক (বৈধ ত্রিভুজ কিনা)
if (a + b <= c || a + c <= b || b + c <= a) {
throw new Error('Invalid triangle sides');
}
const s = (a + b + c) / 2; // সেমি-পেরিমিটার
const area = Math.sqrt(
s * (s - a) * (s - b) * (s - c)
);
return area;
};
// টেস্ট
console.log(areaOfTriangle([12, 4, 9])); // 13.635...
console.log(areaOfTriangle([3, 4, 5])); // 6 (রাইট ট্রায়্যাঙ্গেল)
console.log(areaOfTriangle([5, 5, 5])); // 10.825... (সমবাহু)
// এজ কেস
try {
console.log(areaOfTriangle([1, 2, 10])); // Error: Invalid triangle
} catch (e) {
console.log(e.message);
}
ব্যাখ্যা
- ডিস্ট্রাকচারিং:
const [a, b, c] = sides - ত্রিভুজ অসমতা: যেকোনো দু বাহুর যোগফল তৃতীয় বাহুর চেয়ে বড় হতে হবে
- Math.sqrt(): বর্গমূল বের করতে
উৎপাদন
13.635890143294644