สามเหลี่ยมเกือบสมมาตร (Almost Isosceles Triangle)
สามเหลี่ยมเกือบสมมาตรจำนวนเต็ม คือสามเหลี่ยมที่ด้านทั้งสามเป็นจำนวนเต็ม และมีสองด้านที่เกือบเท่ากัน คือความต่างสัมบูรณ์เป็น 1 หน่วย
ปัญหา
เราต้องเขียนฟังก์ชัน JavaScript ที่รับตัวเลขซึ่งระบุเส้นรอบรูปของสามเหลี่ยม ฟังก์ชันควรหาขนาดของสามเหลี่ยมเกือบสมมาตรที่มีเส้นรอบรูปใกล้เคียงกับค่าที่ป้อนเข้ามามากที่สุด
เช่น หากเส้นรอบรูปที่ต้องการคือ 500 สามเหลี่ยมเกือบสมมาตรที่มีเส้นรอบรูปใกล้เคียงที่สุดจะเป็น [105, 104, 181]
ตัวอย่าง
โค้ดตัวอย่างดังนี้:
const perimeter = 500;
const almostIsosceles = (perimeter = 0) => {
let a = perimeter;
for(; a > 0; a--){
for(let b = perimeter; b > 0; b--){
for(let c = perimeter; c > 0; c--){
if(a + b + c > perimeter || a !== b + 1 || (Math.pow(a, 3) - Math.pow(b, 3) !== Math.pow(c, 2))){
continue;
};
return [a, b, c];
};
};
};
return [];
};
console.log(almostIsosceles(perimeter));
ผลลัพธ์
[ 105, 104, 181 ]