코딩 기록 저장소

[백준/Java] 10430번: 나머지 본문

백준/입출력과 사칙연산 (완료)

[백준/Java] 10430번: 나머지

KimNang 2023. 4. 12. 14:03

문제 정보

제목 : 나머지

번호 : 10430번

사용 언어 : Java

문제 링크

https://www.acmicpc.net/problem/10430

 

10430번: 나머지

첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)

www.acmicpc.net

 

시간 제한 메모리 제한
1 초 256 MB

 

문제

(A+B)%C는 ((A%C) + (B%C))%C 와 같을까?

(A×B)%C는 ((A%C) × (B%C))%C 와 같을까?

세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.

 

입력

첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)

 

출력

첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력한다.

 

입출력 예제


나의 풀이

BufferedReader 통해 사용자로부터 읽어온 값을 split()메소드를 이용해 공백을 기준으로 나누어서 저장합니다. 이것은 String형이므로 정수형 배열 선언후 반복문을 이용해 String형을 Int형으로 변환하여 배열에 저장했습니다.

그리고 각 조건에 맞게 출력문을 입력하여 나머지를 구했습니다.

 

코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
	
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		String[] w = br.readLine().split(" ");
		
		int[] num = {0,0,0};
		for(int i = 0; i < 3; i++) {
			num[i] = Integer.parseInt(w[i]);
		}

		bw.write( ( num[0] + num[1] ) % num[2] + "\n"  );
		bw.write( ( ( num[0] % num[2] ) + (num[1] % num[2]) ) % num[2] + "\n"  );
		bw.write( ( num[0] * num[1] ) % num[2] + "\n"  );
		bw.write( ( ( num[0] % num[2] ) * (num[1] % num[2]) ) % num[2] + "\n"  );

		bw.flush();
		bw.close();
		br.close();
		
	}
}