-
백준 10430 - 나머지자료구조와 알고리즘/문제풀기 2023. 4. 10. 15:34
public class Main{ public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String[] input =br.readLine().split(" "); int[] arr = new int[input.length]; for(int i=0; i<input.length;i++){ arr[i] = Integer.parseInt(input[i]); } bw.write((arr[0]+arr[1])%arr[2]+"\n"); bw.write((arr[0]%arr[2]+arr[1]%arr[2])%arr[2]+"\n"); bw.write((arr[0]*arr[1])%arr[2]+"\n"); bw.write(((arr[0]%arr[2])*(arr[1]%arr[2]))%arr[2]+""); bw.flush(); bw.close(); } }
-나머지에 대한
(a+b)%m = ((a%m)+(b%m))%m
(a*b)%m = ((a%m)*(b%m))%m
(a-b)%m = ((a%m)-(b%m)+m)%m; //음수나머지 나올 수 있다 -> +m한번 해주면 양수로만 나옴
*C(JAVA)와 python 나머지 구하는 방식 차이 c와 java는 나머지를 버림, python은 내림을 이용한다.
8/3 = 2.666 -> 버리던, 내리던 2이다.
8/-3 = -2.666 -> 버리면 -2, 내리면 -3 각각의 상황에 따라
(버림)8 = -3 *-2 (+2) --- (내림)8= -3*-3 (-1)
각자 나머지가 다르게 나온다.
버리는 언어는 나머지의 부호가 나눠지는 수에 달려있고, 내리는 언어는 나머지의 부호가 나누는 수에 달려있다.
둘 중 어느경우더라도 음수 나머지를 허용하고 싶지 않다면, 몫을 올림으로 연산하도록 하면 된다!
-8/3 = 3*-2 -2 --->올림--> 3*-3 +1
8/-3= -3*-3 (-1)-->올림-->-3*-2 +2
'자료구조와 알고리즘 > 문제풀기' 카테고리의 다른 글
백준 1978 - 소수 찾기 (0) 2023.04.10 백준 2609,1934 - 최대공약수와 최소공배수,최소공배수 (0) 2023.04.10 백준 10799 - 쇠막대기 (0) 2023.04.05 백준 17413 - 단어뒤집기2 (0) 2023.04.05 백준 1158 - 요세푸스 문제 (0) 2023.04.05