정수 n이 어떤 양의 정수 x의 제곱인지 판별해서, 만일 그렇다면 n+1의 제곱근을 출력하고 아니라면 -1을 출력하는 문제이다.
sqrt와 pow함수를 쓰기 위해 헤더를 추가해줬다. 먼저 sqrt함수로 n이 어떤 x의 제곱근인지를 파악한다. 다음에 if가 중요한데, 만일 x가 실수일 경우 반올림으로 인해 다시 제곱을 해줬을 때 n의 값이 나오지 않게 된다. 이를 이용해서 만일 같은 n이 나오면(양의 정수라는 의미니까) n+1로 제곱을 해주고 아니면 -1을 리턴하도록 뒀다.
#include <string>
#include <vector>
#include <cmath>
using namespace std;
long long solution(long long n) {
long long answer = 0;
long long x;
x = sqrt(n);
if(n == pow(x, 2)){
answer = pow(x+1, 2);
}else{
return -1;
}
return answer;
}
#include <string>
#include <vector>
#include <cmath>
using namespace std;
long long solution(long long n) {
long long x;
x = sqrt(n);
return (n == pow(x, 2)) ? pow(x+1, 2) : -1;
}
함수를 쓰지 않고 푸는 경우도 있었다. 근데, 난 그냥 함수 씀... 함수 쓰는 게 죄는 아니잖아요! ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ.