누구나 Java에서 재귀을 사용하지 않고 이진 나누기 을 수행하는 가장 직접적이고 + 최적의 방법을 제안 할 수 있습니까?더 쉬운 + 바이너리 나누기를하는 최적의 방법
나는 잘 작동하지만 다음과 같은 코드가 있지만이 기본 수학 함수가 훨씬 더 쉽게 여기에 있어야한다고 생각합니다.
private static int div(int dividend, int divisor) {
int denom = divisor;
int count = 1;
while (denom <= dividend) {
denom <<= 1;
count <<= 1;
}
if (denom > dividend) {
denom >>= 1; count >>= 1;
}
int answer = 0;
// Now find the smaller dividend
while (count != 0) {
if (dividend >= denom) {
dividend = dividend - denom;
// Consume the count value;
answer = answer + count;
}
count >>>= 1;
denom >>= 1;
}
return answer;
}
이것은 재귀 함수가 아니며 반복적 인 함수입니다. 정확히 무슨 문제입니까? – piokuc
이 코드는 작동합니다. 왜 그것이 더 쉬워 져야한다고 생각합니까? 더 쉬운 것이 무엇을 의미합니까? – Geobits
코드 줄이 적어 질 수 있습니다. "쉽게 입력 할 수 있습니다." – MxyL