Tam giác gần cân (Almost Isosceles Triangle)
Một tam giác nguyên gần cân là tam giác mà tất cả độ dài cạnh là số nguyên và hai cạnh gần bằng nhau, chênh lệch tuyệt đối là 1 đơn vị độ dài.
Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một số chỉ định chu vi của một tam giác. Hàm sẽ tìm đoán các cạnh của tam giác gần cân có chu vi gần nhất với chu vi đầu vào.
Ví dụ, nếu chu vi mong muốn là 500, thì tam giác gần cân với chu vi gần nhất sẽ là: [105, 104, 181]
Ví dụ
Dưới đây là mã nguồn:
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));Kết quả
[ 105, 104, 181 ]