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 @@
+
+
* Например для (-1, -1) метод должен вернуть 0; * Например для (-3, -1) метод должен вернуть -1; * Например для (3, 1) метод должен вернуть 1; */ @Override public int compare(int value1, int value2) { - return -2; + if (value1 == value2) { + return 0; + } + return Integer.compare(value1, value2); } /** @@ -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,16 +36,25 @@ public int maxFrom(int value1, int value2) { */ @Override public int maxFrom(int[] values) { - return -1; + int maxValueFromArray = values[0]; + for (int value : values) { + maxValueFromArray = Math.max(maxValueFromArray, value); + } + return maxValueFromArray; } + /** * Метод возвращает сумму чисел массива. * Например для списка {-1, -3, 4, 8, 5, 22, -5} метод должен вернуть 30 */ @Override public int sum(int[] values) { - return -1; + int sumValues = 0; + for (int value : values) { + sumValues += value; + } + return sumValues; } /** @@ -49,7 +63,24 @@ public int sum(int[] values) { */ @Override public int[] getEvenDigits(int[] values) { - return new int[]{}; + int countForIndexArr = 0; + for (int value : values) { + if (value % 2 == 0) { + countForIndexArr++; + } + } + int [] evenNumbersArray = new int [countForIndexArr]; + countForIndexArr = 0; + for (int value : values) { + if (value % 2 == 0) { + evenNumbersArray[countForIndexArr] = value; + countForIndexArr++; + } + } + + return evenNumbersArray; + + } /** @@ -59,31 +90,63 @@ public int[] getEvenDigits(int[] values) { */ @Override public long calcFactorial(int initialVal) { - return -1L; + int factorial = 1; + if (initialVal != 0) { + for (int i = 1; i <= initialVal; i++) { + factorial *= i; + } + } + return factorial; } /** * Метод возвращает число, которе находится на заданной позиции (счет начинается с нуля) в ряду фибоначчи. - * + *
* Ряд фибоначчи - ряд, следующие элементы которого состоят из суммы двух предыдущих. * Ряд начинается 0 и 1. * Пример 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 ... - * + *
* Для числа 9 метод должен вернуть 34 * Для числа 0 метод должен вернуть 0 */ @Override public long calcFibonacci(int number) { - return -1L; - } + int fibonacci = 0; + int fibonacciFirstNumber = 0; + int fibonacciSecondNumber = 1; + if(number==0){ + fibonacci = fibonacciFirstNumber; + } else if(number==1){ + fibonacci = fibonacciSecondNumber; + } else { + for (int i=2;i <= number; ++i){ + fibonacci = fibonacciFirstNumber + fibonacciSecondNumber; + fibonacciFirstNumber = fibonacciSecondNumber; + fibonacciSecondNumber = fibonacci; + } + } + return fibonacci; + } /** * Метод возвращает отсортированный по возрастанию массив. * Например для массива {-1, -3, 4, 8, 5, 22, -5} метод должен вернуть {-5, -3, -1, 4, 5, 8, 22} */ @Override public int[] sort(int[] values) { - return new int[]{}; + boolean isSorted = false; + while (!isSorted) { + isSorted = true; + for (int i = 1; i < values.length; i++) { + if (values[i] < values[i - 1]) { + int j = values[i]; + values[i] = values[i - 1]; + values[i - 1] = j; + isSorted = false; + } + } + } + return values; } /** @@ -94,7 +157,14 @@ public int[] sort(int[] values) { */ @Override public boolean isPrimary(int number) { - return false; + boolean primeNumber = true; + for (int i = 2; i < number; i++){ + if (number % i == 0) { + primeNumber = false; + break; + } + } + return primeNumber; } /** @@ -104,6 +174,11 @@ public boolean isPrimary(int number) { */ @Override public int[] reverseArray(int[] values) { - return new int[]{}; + for (int i = 0, j = values.length -1; i < values.length/2 ; i++, j--){ + int reverse = values[i]; + values[i] = values[j]; + values[j] = reverse; + } + return values; } }