diff --git a/java-basics-template.iml b/java-basics-template.iml new file mode 100644 index 0000000..038395d --- /dev/null +++ b/java-basics-template.iml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file 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 2921576..3e23aae 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; + + public class SimpleMathService implements MathService { /** @@ -13,7 +16,7 @@ public class SimpleMathService implements MathService { */ @Override public int compare(int value1, int value2) { - return -2; + return Integer.compare(value1, value2); } /** @@ -22,7 +25,7 @@ public int compare(int value1, int value2) { */ @Override public int maxFrom(int value1, int value2) { - return -1; + return Math.max(value1, value2); } /** @@ -31,16 +34,19 @@ public int maxFrom(int value1, int value2) { */ @Override public int maxFrom(int[] values) { - return -1; - } + return Arrays.stream(values).max().getAsInt(); // разве не должна выходить ошибка на нулевом массиве? + } /** * Метод возвращает сумму чисел массива. * Например для списка {-1, -3, 4, 8, 5, 22, -5} метод должен вернуть 30 */ @Override public int sum(int[] values) { - return -1; + int sum = 0; + for (int a : values) + sum += a; + return sum ; } /** @@ -49,7 +55,16 @@ public int sum(int[] values) { */ @Override public int[] getEvenDigits(int[] values) { - return new int[]{}; + int[] arr = new int[values.length] ; + int num = 0 ; + for (int b : values) + if (b%2 == 0) { + arr[num] = b; + num++; + } + int[] newArr = new int[num]; + System.arraycopy(arr, 0, newArr, 0, num); + return newArr ; } /** @@ -59,7 +74,13 @@ public int[] getEvenDigits(int[] values) { */ @Override public long calcFactorial(int initialVal) { - return -1L; + long factorial = 1 ; + if (initialVal > 1) { + for ( int i = 2 ; i <= initialVal ; i++) { + factorial *= i ; + } + } + return factorial; } /** @@ -74,7 +95,13 @@ public long calcFactorial(int initialVal) { */ @Override public long calcFibonacci(int number) { - return -1L; + long [] arr = new long[number + 2] ; + arr[0] = 0 ; + arr[1] = 1 ; + for (int i = 2; i <= number ; i++) { + arr[i] = arr[i-2] + arr[i-1] ; + } + return arr[number] ; } /** @@ -83,7 +110,9 @@ public long calcFibonacci(int number) { */ @Override public int[] sort(int[] values) { - return new int[]{}; + Arrays.sort(values); + return values ; + } /** @@ -94,7 +123,10 @@ public int[] sort(int[] values) { */ @Override public boolean isPrimary(int number) { - return false; + for (int i = 2; i < number ; i++) { + if (number%i == 0) return false ; + } + return true; } /** @@ -104,6 +136,16 @@ public boolean isPrimary(int number) { */ @Override public int[] reverseArray(int[] values) { - return new int[]{}; + int start = 0; + int end = values.length - 1; + while (start < end) { + int temp = values[start]; + values[start] = values[end]; + values[end] = temp; + start++; + end--; + } + + return values ; } }