정수 제곱근 판별

NJW·2021년 8월 16일
0

코테

목록 보기
50/170

들어가는 말

정수 n이 어떤 양의 정수 x의 제곱인지 판별해서, 만일 그렇다면 n+1의 제곱근을 출력하고 아니라면 -1을 출력하는 문제이다.

코드 설명

sqrt와 pow함수를 쓰기 위해 헤더를 추가해줬다. 먼저 sqrt함수로 n이 어떤 x의 제곱근인지를 파악한다. 다음에 if가 중요한데, 만일 x가 실수일 경우 반올림으로 인해 다시 제곱을 해줬을 때 n의 값이 나오지 않게 된다. 이를 이용해서 만일 같은 n이 나오면(양의 정수라는 의미니까) n+1로 제곱을 해주고 아니면 -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;
}

2

#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;
}

P.s

함수를 쓰지 않고 푸는 경우도 있었다. 근데, 난 그냥 함수 씀... 함수 쓰는 게 죄는 아니잖아요! ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ.

profile
https://jiwonna52.tistory.com/

0개의 댓글