본문 바로가기

기록으로 남겨 계속 패고 싶은 문제들

#1. 제곱근 구하는 문제. // 동기 용준사마님의 도움으로 해결

문제점.

위와 같은 문제에서, return result == num; 이 부분이 왜 문제에서 요구하는 boolean 타입의 답변인지 모르겠다.

 

--SEB_BE_42 이용준님과 논의 결과 : 

if문으로 1은 2의 0승인점과, 홀수들은 기본적으로 2의 제곱근이 아님을 선 조건으로 걸어두었고,

2의 제곱근을 기본 조건으로 하는 문제이므로, long result라는 지역변수를 선언해 2를 선언해주었고,

그 지역변수 result가 num보다 작을동안은 result *= 2로 계속 2의 제곱근으로 구해준다.

그러다 while문의 반복문으로 언젠가 result가 num보다 작지않아질때,

return result == num; 이라고 선언하면, result는 결국 2의 제곱근으로 만들어진 숫자이므로

num과 같아지면 그것은 2의 제곱근이므로 true. //

라고 이해를 했다. 마