문제

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.

n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수

 

제한조건

n은 1이상, 50000000000000 이하인 양의 정수

 

입출력 예

n             return121         1443              -1

 

코드

 

class Solution {

 public long solution(long n) {

 long answer=0; 

Double x = Math.sqrt(n);         // Math.sqrt의 반환타입은 double 형으로 변수의 타입은 double로 선언해준다.

if( x == x.intValue()) {             // 실수형인 x의 값을 intValue(n) 메소드를 사용하면 x값을 정수 값으로 반환해준다

                                                 x는 실수값인 11.0을 출력된다. 이런 x 값을 x.intValue() 메서드를 사용해주면 정수형인 11

answer = (long) Math.pow(x +1, 2);

} else {           

answer = -1; } 

return answer; 

}

}

 

참고블로그https://codechacha.com/ko/java-math-pow/

 

Java - 거듭제곱 계산, Math.pow()

Math.pow()를 이용하여 거듭제곱을 계산할 수 있습니다. pow는 power를 의미하고, power의 뜻은 거듭제곱입니다. pow() 인자 두개, a와 b를 전달하며, a의 b 제곱이 리턴됩니다. 즉, a를 b번 곱한 값이 리턴

codechacha.com

https://crazykim2.tistory.com/m/599

> 제곱근(루트) 구하기 Math.sqrt() 개념 및 사용법 정리

+ Recent posts