n
에 대해, n
이 어떤 양의 정수 x
의 제곱인지 아닌지 판단하려 합니다.n
이 양의 정수 x
의 제곱이라면 x+1
의 제곱을 리턴하고, n
이 양의 정수 x
의 제곱이 아니라면 -1
을 리턴하는 함수를 완성하세요.n
은 1
이상, 50000000000000 이하인 양의 정수입니다.121
은 양의 정수 11
의 제곱이므로, (11+1)
를 제곱한 144
를 리턴합니다.3
은 양의 정수의 제곱이 아니므로, -1
을 리턴합니다.function solution(n) {
return Number.isInteger(Math.sqrt(n)) ? Math.pow(Math.sqrt(n)+1, 2) : -1;
}
console.log(solution(121)); // 출력 : 144
console.log(solution(3)); // 출력 : -1
Number.isInteger
로 정수인지 판별.Math.sqrt()
는 루트값을 구할 수 있고, Math.pow()
는 제곱근을 구한다! Math.pow(7, 2)
; // 49 <- 이와 같이 첫번째 인자는 제곱할 값, 두번째 인자는 제곱할 횟수를 적어준다.false
면 -1
을 리턴해준다.function nextSqaure(n){
var result = 0;
var x = 0;
while ( x*x < n)
{
x++;
}
if (x*x == n)
{
x++;
result = x*x;
}else{
result = 'no';
}
return result;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log("결과 : " + nextSqaure(121));
result
와 반복문을 실행할 x
를 선언한다.while
문을 사용하여 x
의 제곱이 n
보다 작으면 x
를 증가시키고 n
과 같으면 x
를 1
증가시키고 제곱한 값을 result
에 대입한다.n
과 같지 않으면 'no'
를 result
에 대입하여 -1
을 출력할 수 있게 해준다!while문을 써서 풀었다는 것이 신기했고
'no'
를 출력하면-1
이 출력된다는 사실도 새로 알게 되었다.🧲