문제


(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를 출력한다.

 

예시


입력 : 5  8  4

출력 

1

1

0

0

 

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.function.Function;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		List<Integer> intList = new ArrayList<Integer>();
		intList.add(scanner.nextInt());
		intList.add(scanner.nextInt());
		intList.add(scanner.nextInt());

		System.out.println(calc(intList, (list) -> {
			int A = list.get(0);
			int B = list.get(1);
			int C = list.get(2);
			return (A + B) % C;
		}));
		System.out.println(calc(intList, (list) -> {
			int A = list.get(0);
			int B = list.get(1);
			int C = list.get(2);
			return ((A%C) + (B%C))%C;
		}));
		System.out.println(calc(intList, (list) -> {
			int A = list.get(0);
			int B = list.get(1);
			int C = list.get(2);
			return (A*B)%C;
		}));
		System.out.println(calc(intList, (list) -> {
			int A = list.get(0);
			int B = list.get(1);
			int C = list.get(2);
			return  ((A%C) * (B%C))%C;
		}));

	}

	public static int calc(List<Integer> intList, Function<List<Integer>, Integer> func) {
		return func.apply(intList);
	}
}

핵심

알고리즘보다 자바8에 도입된 함수형 프로그래밍 개념을 사용

메서드를 값으로 다뤄 매개변수로 넣었음. 

'자료구조&알고리즘 > 입출력과 사칙연산' 카테고리의 다른 글

새싹  (0) 2022.06.15
곱셈  (0) 2022.06.15
1998년생인 내가 태국에서는 2541년생?!  (0) 2022.06.15
??!  (0) 2022.06.15
사칙연산  (0) 2022.06.15

+ Recent posts