Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Arrays;
- import java.util.Scanner;
- import java.util.function.BiFunction;
- import java.util.function.Consumer;
- public class _04_AppliedArithmetics {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- int[] nums = Arrays.stream(sc.nextLine()
- .split("\\s+"))
- .mapToInt(Integer::parseInt)
- .toArray();
- BiFunction<int[], Integer, int[]> addY = (x, y) -> {
- for (int i = 0; i < x.length; i++) {
- x[i] += y;
- }
- return x;
- };
- BiFunction<int[], Integer, int[]> subtractY = (x, y) -> {
- for (int i = 0; i < x.length; i++) {
- x[i] -= y;
- }
- return x;
- };
- BiFunction<int[], Integer, int[]> multiplyY = (x, y) -> {
- for (int i = 0; i < x.length; i++) {
- x[i] *= y;
- }
- return x;
- };
- Consumer<int[]> printArr = x -> {
- for (int num : x) {
- System.out.print(num + " ");
- }
- };
- String str = "";
- while (!"end".equals(str = sc.nextLine())) {
- doTransformation(nums, addY, subtractY, multiplyY, printArr, str);
- }
- }
- private static void doTransformation(int[] nums,
- BiFunction<int[], Integer, int[]> addY,
- BiFunction<int[], Integer, int[]> subtractY,
- BiFunction<int[], Integer, int[]> multiplyY,
- Consumer<int[]> printArr,
- String str
- ) {
- switch (str) {
- case "add":
- addY.apply(nums, 1);
- break;
- case "subtract":
- subtractY.apply(nums, 1);
- break;
- case "multiply":
- multiplyY.apply(nums, 2);
- break;
- case "print":
- printArr.accept(nums);
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement