간단한 질문인데 사과하지만 첫 번째 숫자가 두 번째 숫자보다 작 으면 모듈러스 분할 개념을 이해하는 데 문제가 있습니다. 예를 들어, 1 % 4 내 책은 나머지가 1이라고 말합니다. 나는 1이 1 %의 나머지임을 이해하지 못합니다.1/4는 0.25입니다. 모듈러스 부분을 잘못 생각하고 있습니까?첫 번째 숫자가 두 번째 숫자보다 작 으면 모듈레이션 나누기
답변
먼저 Java에서 %는 약간 다른 의미를 가진 나머지 (모듈러가 아닌) 연산자입니다. 그렇다면 분수 값이없는 것처럼 정수 전용 나누기 관점에서 생각해야합니다. 분할 할 수없는 항목을 저장하는 것으로 생각하십시오. 전체 용량 1의 저장소에 크기 4의 항목을 저장할 수 있습니다. 최대 항목 수를 저장 한 후 남은 용량은 1입니다. 마찬가지로 크기 13의 저장소에 크기 5의 2 개의 완전한 항목을 넣을 수 있으므로 13 % 5는 3이며 나머지 용량은 13 - 2*5 = 3
입니다.
1을 4로 나누면 나머지 1은 0이되고 나머지는 모두 나눗셈이됩니다.
될 것입니다 무엇 40 %이면 –
@ yanivx 동일 물건, 0 나머지 40이므로 4 –
숫자를 다른 숫자의 배수로 표현한 또 다른 방법입니다. 즉, a = n*b + r
, 여기서 b>r>=0
. 이런 의미에서 케이스는 1 = 0*4 + 1
입니다. (편집 : 양수 만 이야기) 나는 당신이 %(Remainder)
와 /(Division)
사업자 사이의 혼란 생각
.
%
라고 말하면 나머지 0 또는 끝을 얻을 때까지 배당금을 나누어야합니다. 그리고 결국 당신이 얻는 것은 Remainder
입니다. 당신이 /
을 말할 때 제수가 1이된다 그리고 첫 번째 숫자는> 경우 당신이 얻을 최종 제품은, 계수에서 을 물건을 취소 Quotient
또 다른 좋은 방법을 호출 될 때까지
, 당신은 배당금을 분할 두 번째 숫자는 첫 번째 숫자가 두 번째 숫자보다 작아 질 때까지 첫 번째 숫자에서 두 번째 숫자를 뺍니다.
17 % 5 = ?
17 - 5 = 12
12 % 5 = ?
12 - 5 = 7
7 % 5 = ?
7 - 5 = 2
2 % 5 = 2
따라서 17 % 5 12 % 5, 7 내지 5는 모두 2 의 답을이 때문에 5분의 2 = 0으로 나머지 2 (정수로 작업 할 때).
나는 "Jean-Bernard Pellerin"이 이미 말한 것에 좀 더 실제적인 예를 추가 할 것입니다.
1을 4로 나누면 0이되지만, 1을하면 왜 4가 될까요?
n = a/b (integer), and
m = a % b = a - (b * n)
그래서,
a b n = a/b b * n m = a%b
1 4 0 0 1
2 4 0 0 2
3 4 0 0 3
4 4 1 0 0
5 4 1 4 1
결론 :
는 기본적으로 인해이있는 < B 동안, % b의 결과가 "A"
이니 남은 구분은 이해합니다 첫 번째 숫자는 두 번째 숫자보다 큽니다. 그래서 나는 13 % 5가 3 인 방법을 얻었습니다. 이해가 안되는 것은 5 % 13 일 때의 답이 될 것입니다. –
항목이 용량보다 큰 경우 저장소에 저장할 수 없습니다. 따라서 결과는 항상 사용되지 않은 채로 남아 있습니다 (즉, 첫 번째 숫자 - 아마도 '5 % 13'을 의미합니다). – misberner
예 5 % 13을 의미했지만 그 반대가 아닙니다. 그래서 만약 당신이 5 % 13에 대한 대답이 5라고 말하면 어떻게됩니까? 그 맞습니까? –