나머지3 음수의 나머지 계산법 음수를 모듈러 연산자 % 로 연산 할때는 음수에 나눌 숫자의 배수를 더해서 양수로 만들어 줘야한다 더해도 나눌 숫자의 배수를 더한거니 나머지의 값은 같기 때문에 걱정 안 할 필요는 없다 let ans = -3 mod 8; 위의 경우 나눌 수가 -3으로 음수이므로 나누는 숫자인 8의 배수를 아무거나 더해서 (1배수든... 2배수든...) 양수로 만들어 주자. 8의 1배수 8을 더해보자 let ans = (-3 + 8) mod 8; let ans = 5 mod 8; console.log(ans); // 5 위와 같은 방법으로 음수도 %모듈러 연산자로 연산 가능하다 모듈러의 음수를 해결해도 문제가 에러가 난다면, 큰 수를 처리하기 위한 BigInt 등의 사용도 고려해보자 2022. 9. 26. 백준 4375/c++ )) 1 모듈러 연산에 대한 이해 1 , 11, 111, 1111, 11111 식으로 늘어나는 수 중에 입력한 a의 수의 배수인(a으로 나눠서 나머지가 0인) 최소값의 자리수를 구하는 문제이다 c++의 경우 표현할 수 있는 숫자의 크기가 정해져있으므로 자리수도 무한정 늘릴 수 없다 자리수가 올라갈때마다 자리수 nu에 ++ 해주고, 규칙에 의해 자리수가 올라가고 새로 취한 수는 모듈러 연산을 이용하여 나머지 값만 취하고 a의 배수인지 확인, 나머지가 0이면 배수이므로 그때의 자리수를 출력, 그렇지 않으면 다시 일정한 규칙으로 수를 기존 나머지값에 적용하여 반복하여 구하는 문제이다 입력의 경우 끝나지 않고 계속 받으므로, "cin.eof() 입력의 끝" 이 "아니다 ! " 가 참일 동안 while 을 통해 입력을 계속 유지하였다 while(.. 2022. 6. 17. 모듈러 연산 모듈은 %연산에서 나누는 수를 말한다 c = a%b // a를 b로 나누고 남은 나머지가 c이다 c = a mod b // b 를 모듈이라 한다 모듈러 연산은 % 를 사용하여 남은 나머지를 연산하는 것을 말한다 외워두면 몇가지 공식이 있어서 아래에 정리한다 a ≡ b mod n 이고 b ≡ c mod n 이면 a ≡ c mod n [ ( a mod n) + (b mod n) ] mod n = (a + b) mod n [ ( a mod n) - (b mod n) ] mod n = (a - b) mod n [ ( a mod n) * (b mod n) ] mod n = (a * b) mod n 2022. 6. 10. 이전 1 다음