문제
컴퓨터를 이용하면 수학 계산이 조금 쉬워진다. 다음과 같은 예를 살펴보자. 세 변의 길이가 a, b, c(c는 빗변)이면서 a2+b2=c2를 만족하는 삼각형을 직각삼각형이라고 한다. 이 공식은 피타고라스의 법칙이라고 한다.
직각 삼각형의 두 변의 길이가 주어졌을 때, 한 변의 길이를 구하는 프로그램을 작성하시오.
입출력 예시
해결
const fs = require('fs');
const { start } = require('repl');
const stdin = (process.platform === 'linux'
? fs.readFileSync('/dev/stdin').toString()
: `6 -1 6
3 4 -1
-1 2 7
5 -1 3
0 0 0`
).match(/[^\r\n]+/g);
const input = (() => {
let line = 0;
return () => stdin[line++];
})();
let i = 1;
let answer=[];
while (true) {
const s = input().split(' ').map(Number)
if (s[0] === 0) break;
const area = s.indexOf(-1)
const arr = ['a','b','c']
if (arr[area] == 'a') {
const sq = (s[2]**2) - (s[1]**2)
const line = (Math.sqrt(sq)).toFixed(3)
if (line < s[2] && line != 0){
answer.push(`Triangle #${i}\n${arr[area]} = ${line}`)
} else {
answer.push(`Triangle #${i}\nImpossible.`)
}
}
if (arr[area] == 'b') {
const sq = (s[2]**2) - (s[0]**2)
const line = (Math.sqrt(sq)).toFixed(3)
if (line < s[2] && line != 0){
answer.push(`Triangle #${i}\n${arr[area]} = ${line}`)
} else {
answer.push(`Triangle #${i}\nImpossible.`)
}
}
if (arr[area] == 'c') {
const sq = (s[0]**2) + (s[1]**2)
const line = (Math.sqrt(sq)).toFixed(3)
if (line > s[2] && line != 0){
answer.push(`Triangle #${i}\n${arr[area]} = ${line}`)
} else {
answer.push(`Triangle #${i}\nImpossible.`)
}
}
i++;
}
console.log(answer.join('\n\n'))
'개발 공부 > Algorithm' 카테고리의 다른 글
[백준/Node.js] 오늘도 졌다 (0) | 2023.03.23 |
---|---|
[백준/Node.js] 블랙잭 (0) | 2023.03.22 |
[백준/Node.js] 팬그램 (0) | 2023.03.20 |
[백준/Node.js] 탄산 음료 (0) | 2023.03.17 |
[백준/Node.js] 팰린드롬수 (0) | 2023.03.16 |