C++ 학습/C++ 코딩인터뷰[4장]
[4. 기본자료형] 4.6 산술 연산자 없이 나눗셈 계산하기
msugi
2024. 12. 26. 14:43
Q 4.6 산술 연산자 없이 나눗셈 계산하기
양의 정수 x와 y를 나눈 몫을 구하라. (제목은 산술 연산자 없이 이지만 덧셈, 뺄셈, 쉬프트 연산은 허용한다.)
x = 50 에서 y = 4을 나눈다고 할때 다음과 같다.
< x = 110010 / y = 100 > 이때 y의 비트 자릿수를 x와 동일하게 만들어 빼준다.
110010
- 100000 ...1번
---------------
10010 1번의 값 100000 을 결과값에 저장. 그후 y의 자릿수를 10010과 동일하게 만들어 빼준다.
- 10000 ...2번
---------------
10 2번의 값 10000 을 결과값에 저장. (결과값 = 몫) 남은값을 y와 비교해 작으면 결과값을 리턴한다.
해당 코드와 코딩결과는 다음과 같다.