https://www.acmicpc.net/problem/10430
문제
(A+B)%C는 ((A%C) + (B%C))%C 와 같을까?
(A×B)%C는 ((A%C) × (B%C))%C 와 같을까?
세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.
풀이
문제 그대로 계산해서 출력하면 된다.
출력해보면 결과가 같다는 것을 알 수 있는데, 위 두 식은 모듈러 연산의 성질에 의해 같다는 것을 알아두면 좋다.
Scanner 클래스를 이용한 방법, BufferedReader 클래스와 StringBuilder 클래스를 이용한 방법으로 풀어 보았다.
코드
Scanner 클래스를 이용한 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int A = scanner.nextInt();
int B = scanner.nextInt();
int C = scanner.nextInt();
int result1 = (A + B) % C;
int result2 = ((A % C) + (B % C)) % C;
int result3 = (A * B) % C;
int result4 = ((A % C) * (B % C)) % C;
System.out.println(result1);
System.out.println(result2);
System.out.println(result3);
System.out.println(result4);
}
}
BufferedReader 클래스와 StringBuilder 클래스를 이용한 코드
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
st = new StringTokenizer(br.readLine());
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
int C = Integer.parseInt(st.nextToken());
int result1 = (A + B) % C;
int result2 = ((A % C) + (B % C)) % C;
int result3 = (A * B) % C;
int result4 = ((A % C) * (B % C)) % C;
sb.append(result1).append("\n");
sb.append(result2).append("\n");
sb.append(result3).append("\n");
sb.append(result4);
System.out.println(sb);
}
}
틀린 부분이 있다면 정정해 주시면 감사하겠습니다.
궁금한 부분이 있거나, 다른 아이디어가 있으시면 자유롭게 댓글 남겨주세요!
728x90
'[JAVA]백준 알고리즘 > 단계별 - 입출력과 사칙연산' 카테고리의 다른 글
[JAVA]백준 알고리즘 11382번 : 꼬마 정민 (0) | 2023.06.21 |
---|---|
[JAVA]백준 알고리즘 2588번 : 곱셈 (0) | 2023.06.20 |
[JAVA]백준 알고리즘 18108번 : 1998년생인 내가 태국에서는 2541년생?! (0) | 2023.05.29 |
[JAVA]백준 알고리즘 10926번 : ??! (0) | 2023.05.28 |
[JAVA]백준 알고리즘 10869번 : 사칙연산 (0) | 2023.05.28 |