모듈러스 연산 계산 방법을 파악하기 위해 작은 문제가 있습니다. 큐를 구축 중이므로 순환 배열이 있습니다. 이 모듈러스 연산이 어떻게 작동하는지 알 수 없습니다. 원형 배열의 모듈러스 연산을 이해하는 데 도움이됩니다.
주어 Q
5 요소 길이의 문자의 배열, 최대 상수 배열의 최대 길이를 제공은 "5"희소 는 어레이 Q 가능한 첫 번째 지점을 나타내는 int이며public void enqueue(Character c)throws FullQueueException{
if(size()== MAX -1){ //if only 1 place left, is full, throw exc
throw new FullQueueException("Queue is full");
}
q[rare]=c;
rare=(rare+1)%MAX;
}
드문 "첫 번째 빈 자리"가 3 인 경우, 메서드가 끝난 후 희귀 한 값은 무엇일까요? 이것은 내가 얻지 못하는 것입니다. rare = (rare + 1) % MAX는 희귀 = 희귀 = 0,8을 제공하는 희귀 = 4 % 5를 의미합니다. 방법 크기 동일
:
public int size() {
return (MAX - front + rear) % MAX;
}
주어 앞에 배열의 3 개 요소가 있으므로, 1 드문 4 어레이 가정하자 앞의 첫 번째 요소를 나타낸다하는 int 변수이므로 크기는 (5-1 + 4) % 5이며, 실제 크기는 3인데 반해, 1.6은 8 % 5입니다. 제안이 있습니까? 이것은 자바보다 수학일지도 모르지만 아마도 여러분 중 일부는 이전에 똑같은 의심을 품어 왔을 것입니다. 감사합니다.
4 % 5 = 4 아니요. – erickson
예. 미안합니다. 내 잘못 입력. 지금 고쳐야한다. – tschaible