임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인 지 판단해야 한다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, 아니면 -1을 리턴하는 함수를 작성하는 문제이다.

 

C++의 <cmath> 헤더에서 제공하는 sqrt, pow 함수를 사용하면 쉽게 풀 수 있다.

 

#include <string>
#include <vector>

//sqrt 와 pow 사용을 위해 추가
#include <cmath>

using namespace std;

long long solution(long long n) {
    long long answer = 0;
    
    // 입력받은 숫자 n 에 루트를 씌워서 계산한 값을 반환해 주는 함수
    // 즉 n의 제곱근을 구해줌
    long long temp = sqrt(n);
    
    // n이 어떤 숫자 x 의 제곱근인 경우, x+1의 제곱을 구함
    if(temp * temp == n)
    {
    	// pow(input, num) : input 의 num 제곱을 구하는 함수
        answer = pow(temp+1,2);
    }
    else
    {
        answer = -1;
    }
    return answer;
}

+ Recent posts