From abbb0ffb58b81dfffd5636f2c1e45188cd6ea6bd Mon Sep 17 00:00:00 2001 From: TImur <6666_timurik_6666@mail.ru> Date: Wed, 15 Sep 2021 21:39:21 +0400 Subject: [PATCH 1/2] work finish --- .../rd/online/service/SimpleMathService.java | 106 ++++++++++++++---- 1 file changed, 87 insertions(+), 19 deletions(-) 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..c6684180 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,28 +1,45 @@ package com.epam.izh.rd.online.service; + +import java.util.Arrays; + public class SimpleMathService implements MathService { /** * Метод возвращает 0, если value1 = value2. * Метод возвращает -1, если value1 < value2. * Метод возвращает 1, если value1 > value2. - * + *
* Например для (-1, -1) метод должен вернуть 0; * Например для (-3, -1) метод должен вернуть -1; * Например для (3, 1) метод должен вернуть 1; */ + @Override public int compare(int value1, int value2) { - return -2; + if (value1 == value2) { + return 0; + } else if (value1 < value2) { + return -1; + } else { + return 1; + } } + /** * Метод возвращает максимальное число из пары. * Например для списка (-1, 2) метод должен вернуть 2 */ @Override public int maxFrom(int value1, int value2) { - return -1; + if (value1 == value2) { + return value1; + } else if (value1 < value2) { + return value2; + } else { + return value1; + } } /** @@ -31,7 +48,13 @@ public int maxFrom(int value1, int value2) { */ @Override public int maxFrom(int[] values) { - return -1; + int maxValue = values[0]; + for (int i = 1; i < values.length; i++) { + if (values[i] > maxValue) { + maxValue = values[i]; + } + } + return maxValue; } /** @@ -40,7 +63,12 @@ public int maxFrom(int[] values) { */ @Override public int sum(int[] values) { - return -1; + int summa = 0; + for (int i = 0; i < values.length; i++) { + summa += values[i]; + + } + return summa; } /** @@ -49,7 +77,22 @@ public int sum(int[] values) { */ @Override public int[] getEvenDigits(int[] values) { - return new int[]{}; + int numberCounter = 0; + for (int i = 0; i < values.length; i++) { + if (values[i] % 2 == 0) { + numberCounter++; + } + } + int[] evenArray = new int[numberCounter]; + int j = 0; + for (int i = 0; i < values.length; i++) { + if (values[i] % 2 == 0) { + evenArray[j] = (int) values[i]; + j++; + } + + } + return evenArray; } /** @@ -57,18 +100,24 @@ public int[] getEvenDigits(int[] values) { * Например для числа 5 метод должен вернуть 120. * Факториал 0 должен быть равен 1. */ - @Override - public long calcFactorial(int initialVal) { - return -1L; - } + + @Override + public long calcFactorial(int initialVal) { + int result = 1; + for (int i = 1; i <= initialVal; i++) { + result *= i; + } + return result; + } + /** * Метод возвращает число, которе находится на заданной позиции (счет начинается с нуля) в ряду фибоначчи. - * + *
* Ряд фибоначчи - ряд, следующие элементы которого состоят из суммы двух предыдущих. * Ряд начинается 0 и 1. * Пример 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 ... - * + *
* Для числа 9 метод должен вернуть 34 * Для числа 0 метод должен вернуть 0 */ @@ -83,27 +132,46 @@ public long calcFibonacci(int number) { */ @Override public int[] sort(int[] values) { - return new int[]{}; + Arrays.sort(values); + return values; } - /** * Метод определяет, является ли заданное число простым. * Простое число - число, которое делится только на 1 и на само себя. - * - * Например для числа 22 вернется false, а для числа 23 true. + * *
+ * * Например для числа 22 вернется false, а для числа 23 true. */ @Override public boolean isPrimary(int number) { - return false; + { + for (int i = 2; i < number; i++) //бежим по циклу начиная от 2 и до самого числа не включительно + { + if (number % i == 0) //если остаток от деления числа на значение шага цикла равен нулю, то + { + return false; //вернуть false, переданное число простым не является + } + } + //если же ни одного значения, удоволетворяющего условию выше, не было найдено, то + return true; //вернуть true, переданное число простое + } + } /** * Метод возвращает массив, в котором элементы расположены в обратном порядке. - * + *
* Например для массива {-1, -3, 4, 8, 5, 22, -5} метод вернет {-5, 22, 5, 8, 4, -3, -1} */ @Override public int[] reverseArray(int[] values) { - return new int[]{}; + int[] reverseArray = new int[values.length]; + int reveseCaunt = values.length - 1; + for (int i = 0; i < values.length; i++){ + reverseArray[reveseCaunt] = values[i]; + reveseCaunt--; + } + return reverseArray; + } } + From 5c3e6f726e261b6033854de2be3035e03e6fa3f9 Mon Sep 17 00:00:00 2001 From: TImur <6666_timurik_6666@mail.ru> Date: Thu, 16 Sep 2021 13:45:49 +0400 Subject: [PATCH 2/2] work finish --- .../rd/online/service/SimpleMathService.java | 60 ++++++++++++------- 1 file changed, 38 insertions(+), 22 deletions(-) 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 c6684180..fcdd2923 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 @@ -83,16 +83,16 @@ public int[] getEvenDigits(int[] values) { numberCounter++; } } - int[] evenArray = new int[numberCounter]; + int[] newArray = new int[numberCounter]; int j = 0; for (int i = 0; i < values.length; i++) { if (values[i] % 2 == 0) { - evenArray[j] = (int) values[i]; + newArray[j] = (int) values[i]; j++; } } - return evenArray; + return newArray; } /** @@ -101,14 +101,14 @@ public int[] getEvenDigits(int[] values) { * Факториал 0 должен быть равен 1. */ - @Override - public long calcFactorial(int initialVal) { - int result = 1; - for (int i = 1; i <= initialVal; i++) { - result *= i; - } - return result; + @Override + public long calcFactorial(int initialVal) { + int result = 1; + for (int i = 1; i <= initialVal; i++) { + result *= i; } + return result; + } /** @@ -123,7 +123,25 @@ public long calcFactorial(int initialVal) { */ @Override public long calcFibonacci(int number) { - return -1L; + long firstValue = 0; + long secondValue = 1; + long result = 0; + + if (number == 0) { + return firstValue; + } + + if (number == 1) { + return secondValue; + } + + for (int i = 0; i < number - 1; i++) { + result = firstValue + secondValue; + firstValue = secondValue; + secondValue = result; + } + + return result; } /** @@ -135,6 +153,7 @@ public int[] sort(int[] values) { Arrays.sort(values); return values; } + /** * Метод определяет, является ли заданное число простым. * Простое число - число, которое делится только на 1 и на само себя. @@ -144,15 +163,12 @@ public int[] sort(int[] values) { @Override public boolean isPrimary(int number) { { - for (int i = 2; i < number; i++) //бежим по циклу начиная от 2 и до самого числа не включительно - { - if (number % i == 0) //если остаток от деления числа на значение шага цикла равен нулю, то - { - return false; //вернуть false, переданное число простым не является + for (int i = 2; i < number; i++) { + if (number % i == 0) { + return false; } } - //если же ни одного значения, удоволетворяющего условию выше, не было найдено, то - return true; //вернуть true, переданное число простое + return true; } } @@ -165,10 +181,10 @@ public boolean isPrimary(int number) { @Override public int[] reverseArray(int[] values) { int[] reverseArray = new int[values.length]; - int reveseCaunt = values.length - 1; - for (int i = 0; i < values.length; i++){ - reverseArray[reveseCaunt] = values[i]; - reveseCaunt--; + int reverseCount = values.length - 1; + for (int i = 0; i < values.length; i++) { + reverseArray[reverseCount] = values[i]; + reverseCount--; } return reverseArray;