알고리즘 Lv1 - 정수제곱근 판별하기

내가 쓴 코드

#include <string>
#include <vector>
#include <math.h>

using namespace std;

long long solution(long long n) {
    long long answer = 0;

    if(sqrt(n) == (int)sqrt(n))
        answer = pow(sqrt(n)+1, 2);
    else
        answer = -1;

    return answer;
}

다른 사람이 쓴 코드

#include <string>
#include <vector>
#include <math.h>
using namespace std;

long long solution(long long n) {
    long long answer = sqrt(n);

    return powl(answer, 2) == n ? powl(answer + 1, 2) : -1;
}

 

배운점

- <math.h> 라이브러리의 pow(), sqrt() 를 이용하여 제곱 관련된 변수 생성 가능

- pow(a, b) 는 a의 b승. (type은 double을 리턴)

   이외에도 powl, powf  두 가지가 더 있다. powl()은  long long 형을 반환하고

   powf()는 float형을 리턴한다.

- sqrt(n)은 n의 제곱근. 

댓글을 작성해보세요.