diff --git a/pom.xml b/pom.xml index f094807c..a0483749 100644 --- a/pom.xml +++ b/pom.xml @@ -33,8 +33,8 @@ org.apache.maven.plugins maven-compiler-plugin - ${java.version} - ${java.version} + 9 + 9 diff --git a/src/main/java/com/epam/izh/rd/online/service/SimpleMathService.java b/src/main/java/com/epam/izh/rd/online/service/SimpleMathService.java index 29215765..c1187952 100644 --- a/src/main/java/com/epam/izh/rd/online/service/SimpleMathService.java +++ b/src/main/java/com/epam/izh/rd/online/service/SimpleMathService.java @@ -1,5 +1,8 @@ package com.epam.izh.rd.online.service; +import java.util.Arrays; +import java.util.stream.IntStream; + public class SimpleMathService implements MathService { /** @@ -13,7 +16,9 @@ public class SimpleMathService implements MathService { */ @Override public int compare(int value1, int value2) { - return -2; + if (value1 < value2){ return -1;} + else if (value1 > value2) {return 1;} + else return 0; } /** @@ -22,7 +27,7 @@ public int compare(int value1, int value2) { */ @Override public int maxFrom(int value1, int value2) { - return -1; + return Math.max(value1, value2); } /** @@ -31,7 +36,13 @@ public int maxFrom(int value1, int value2) { */ @Override public int maxFrom(int[] values) { - return -1; + int s = 0; + for (int i = 0; i < values.length; i++) { + if (s < values[i]) { + s = values[i]; + } + } + return s; } /** @@ -40,7 +51,10 @@ public int maxFrom(int[] values) { */ @Override public int sum(int[] values) { - return -1; + int sum = 0; + for (int i = 0; i < values.length; i++) { + sum = sum + values[i]; + } return sum; } /** @@ -49,7 +63,17 @@ public int sum(int[] values) { */ @Override public int[] getEvenDigits(int[] values) { - return new int[]{}; + int count = 0, index = 0; + for (int elem : values) { + if (elem % 2 == 0) count++; + } + int[] result = new int[count]; + for (int elem : values) { + if (elem % 2 == 0) { + result[index++] = elem; + } + } + return result; } /** @@ -59,7 +83,11 @@ public int[] getEvenDigits(int[] values) { */ @Override public long calcFactorial(int initialVal) { - return -1L; + int result = 1; + for (int i = 1; i <= initialVal; i++) { + result = result * i; + } + return result; } /** @@ -74,16 +102,19 @@ public long calcFactorial(int initialVal) { */ @Override public long calcFibonacci(int number) { - return -1L; + return number == 0 || number == 1 + ? number + : calcFibonacci(number - 1) + calcFibonacci(number - 2); } + /** * Метод возвращает отсортированный по возрастанию массив. * Например для массива {-1, -3, 4, 8, 5, 22, -5} метод должен вернуть {-5, -3, -1, 4, 5, 8, 22} */ @Override public int[] sort(int[] values) { - return new int[]{}; + return Arrays.stream(values).sorted().toArray(); } /** @@ -94,7 +125,8 @@ public int[] sort(int[] values) { */ @Override public boolean isPrimary(int number) { - return false; + return number % 2 != 0 && IntStream.iterate(3, x -> x * x <= number, x -> x + 2).allMatch(x -> number % x != 0) || number == 2; + } /** @@ -104,6 +136,6 @@ public boolean isPrimary(int number) { */ @Override public int[] reverseArray(int[] values) { - return new int[]{}; + return IntStream.range(0, values.length).map(x -> values[values.length - x - 1]).toArray(); } }