Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

สามเหลี่ยมหน้าต่างเกือบสมมาตรที่มีเส้นรอบรูปใกล้เคียงที่สุดใน JavaScript


สามเหลี่ยมเกือบสมมาตร (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 ]