-
JUNGOL...102일지 2021. 7. 26. 14:32
Intermediate_Coder/분할정복/제곱근
문제
임의의 정수 N이 주어졌을 때 N의 양의 제곱근의 정수부분을 출력하는 프로그램을 작성하라.
양의 제곱근이란 다음을 만족하는 수 X 를 뜻한다.
N = X2 (X≥1)
[ 주의 !!! ]
sqrt와 같은 함수를 사용하지 말아야 하며
stdio.h 와 iostream 등 입출력 헤더에 있는 함수만이 사용가능하다.
이를 어길 경우 0점 처리한다.
입력 형식
입력에는 263-1 이하의 양의 정수 N이 입력된다
출력 형식
N의 제곱근의 정수부분을 출력한다.
입력 예
8 | 16
출력 예
2 | 4
Hint!
hancomc@hotmail.net
SquareRoot.h
#include <iostream> class SquareRoot : public Base { private: long long GetSquareRoot(long long num); };
SquareRoot.cpp
void SquareRoot::Code() { int num; std::cin >> num; std::cout << GetSquareRoot(num); } long long SquareRoot::GetSquareRoot(long long num) { long long x = num; for (int i = 0; i < 20; i++) { x = (x + num / x) / 2; } return x; }
실행 결과 Accepted(50)
원인 루트 값을 찾을 때 반복 횟수가 부족해서 발생하는 것으로 보인다.
처리 방법 반복 회수를 늘린다.
NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)
NadanKim/CodingTest_JUNGOL
JUNGOL 코딩 테스트를 위한 저장소. Contribute to NadanKim/CodingTest_JUNGOL development by creating an account on GitHub.
github.com