From 03be57e462f74c8a7743aec828eab721b4816f39 Mon Sep 17 00:00:00 2001 From: Snegopad-izh Date: Thu, 25 Nov 2021 19:18:57 +0400 Subject: [PATCH 01/12] Start --- .../java/com/epam/izh/rd/online/service/SimpleMathService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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..1e6fe707 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 @@ -13,7 +13,7 @@ public class SimpleMathService implements MathService { */ @Override public int compare(int value1, int value2) { - return -2; + return -2; // начать отсюда писать код } /** From 5bb9d07c3a2597042e2bc56fbcc6fcb2b2892f4f Mon Sep 17 00:00:00 2001 From: Snegopad-izh Date: Sun, 28 Nov 2021 14:06:35 +0400 Subject: [PATCH 02/12] compare method OK --- .../com/epam/izh/rd/online/service/SimpleMathService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 1e6fe707..18023a02 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 @@ -13,7 +13,13 @@ 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; + } } /** From 3a881161facb9e7f0c812d38f7e87039d1bf7747 Mon Sep 17 00:00:00 2001 From: Snegopad-izh Date: Sun, 28 Nov 2021 14:29:50 +0400 Subject: [PATCH 03/12] maxFrom method OK --- .../com/epam/izh/rd/online/service/SimpleMathService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 18023a02..a95d033a 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 @@ -28,7 +28,13 @@ public int compare(int value1, int value2) { */ @Override public int maxFrom(int value1, int value2) { - return -1; + if (value1 == value2) { // А если занения переменных равны? + return 0; + } else if (value1 < value2) { + return value2; + } else { + return value1; + } } /** From edfd34ea7d09388b45ccec6887758d3438b65cb1 Mon Sep 17 00:00:00 2001 From: Snegopad-izh Date: Sun, 28 Nov 2021 15:36:39 +0400 Subject: [PATCH 04/12] maxFrom maxFromArray OK --- .../com/epam/izh/rd/online/service/SimpleMathService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 a95d033a..2df00cc5 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 @@ -43,7 +43,13 @@ public int maxFrom(int value1, int value2) { */ @Override public int maxFrom(int[] values) { - return -1; + int maximumValue = values[0]; // Проверку начнём с 1 значения массива + for (int maxIndex = 0; maxIndex < values.length; maxIndex++) { + if (maximumValue <= values[maxIndex]) { + maximumValue = values[maxIndex]; + } + } + return maximumValue; } /** From b39c2de7b6ab351fe0b5e77a84628a67ea1d7f78 Mon Sep 17 00:00:00 2001 From: Snegopad-izh Date: Sun, 28 Nov 2021 19:50:41 +0400 Subject: [PATCH 05/12] test sumOfArray OK --- pom.xml | 6 ++++++ .../izh/rd/online/service/SimpleMathService.java | 15 +++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index f094807c..ff9a4785 100644 --- a/pom.xml +++ b/pom.xml @@ -20,6 +20,12 @@ ${junit.jupiter.version} test + + org.jetbrains + annotations + RELEASE + compile + 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 2df00cc5..878aecb5 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 @@ -6,7 +6,7 @@ public class SimpleMathService implements MathService { * Метод возвращает 0, если value1 = value2. * Метод возвращает -1, если value1 < value2. * Метод возвращает 1, если value1 > value2. - * + *

* Например для (-1, -1) метод должен вернуть 0; * Например для (-3, -1) метод должен вернуть -1; * Например для (3, 1) метод должен вернуть 1; @@ -58,7 +58,10 @@ public int maxFrom(int[] values) { */ @Override public int sum(int[] values) { - return -1; + int totSum = 0; + for (int i = 0; i < values.length; i++) + totSum += values[i]; + return totSum; } /** @@ -82,11 +85,11 @@ public long calcFactorial(int initialVal) { /** * Метод возвращает число, которе находится на заданной позиции (счет начинается с нуля) в ряду фибоначчи. - * + *

* Ряд фибоначчи - ряд, следующие элементы которого состоят из суммы двух предыдущих. * Ряд начинается 0 и 1. * Пример 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 ... - * + *

* Для числа 9 метод должен вернуть 34 * Для числа 0 метод должен вернуть 0 */ @@ -107,7 +110,7 @@ public int[] sort(int[] values) { /** * Метод определяет, является ли заданное число простым. * Простое число - число, которое делится только на 1 и на само себя. - * + *

* Например для числа 22 вернется false, а для числа 23 true. */ @Override @@ -117,7 +120,7 @@ public boolean isPrimary(int number) { /** * Метод возвращает массив, в котором элементы расположены в обратном порядке. - * + *

* Например для массива {-1, -3, 4, 8, 5, 22, -5} метод вернет {-5, 22, 5, 8, 4, -3, -1} */ @Override From 06a6e837c4e7b91dec0338165de037404493fe10 Mon Sep 17 00:00:00 2001 From: Snegopad-izh Date: Mon, 29 Nov 2021 15:26:38 +0400 Subject: [PATCH 06/12] test evenDigits OK --- .../rd/online/service/SimpleMathService.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) 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 878aecb5..60bf99bf 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 @@ -70,7 +70,24 @@ public int sum(int[] values) { */ @Override public int[] getEvenDigits(int[] values) { - return new int[]{}; + int evenDigitsCounter = 0; // Тут сколько чётных чисел + + for (int i = 0; i < values.length; i++) { + if (values[i] % 2 == 0) { + evenDigitsCounter++; + } + } + + int evenDigits[] = new int[evenDigitsCounter]; // Тут результирующий массив + int c = 0; // Тут счётчик индекса для результирующего массива + + for (int i = 0; i < values.length; i++) { + if (values[i] % 2 == 0) { + evenDigits[c] = values[i]; + c++; + } + } + return evenDigits; } /** From fbb00bcbe58e27dc966a95b137a4fb988422668e Mon Sep 17 00:00:00 2001 From: Snegopad-izh Date: Mon, 29 Nov 2021 16:12:08 +0400 Subject: [PATCH 07/12] test factorial OK --- .../com/epam/izh/rd/online/service/SimpleMathService.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 60bf99bf..720ce8dd 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 @@ -97,7 +97,11 @@ public int[] getEvenDigits(int[] values) { */ @Override public long calcFactorial(int initialVal) { - return -1L; + long factorial = 1; + for (int c = 1; c <= initialVal; c++) { + factorial *= c; + } + return factorial; } /** From 87234edbde7529c1cb5af1176370c6e7f4e43c1d Mon Sep 17 00:00:00 2001 From: Snegopad-izh Date: Mon, 29 Nov 2021 16:39:33 +0400 Subject: [PATCH 08/12] test fibonacci OK --- .../izh/rd/online/service/SimpleMathService.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 720ce8dd..f21a0608 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 @@ -116,7 +116,19 @@ public long calcFactorial(int initialVal) { */ @Override public long calcFibonacci(int number) { - return -1L; + if (number == 0) { + return 0; + } + + long a = 0; + long fibonacci = 1; + + for (int i = 2; i <= number; ++i) { + long n = a + fibonacci; + a = fibonacci; + fibonacci = n; + } + return fibonacci; } /** From a8ccaa7fb543b95ddfcf85ca7a77e1be582bbd0f Mon Sep 17 00:00:00 2001 From: Snegopad-izh Date: Tue, 30 Nov 2021 13:23:25 +0400 Subject: [PATCH 09/12] test sort OK --- .../epam/izh/rd/online/service/SimpleMathService.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 f21a0608..c2dc1950 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 @@ -137,7 +137,16 @@ public long calcFibonacci(int number) { */ @Override public int[] sort(int[] values) { - return new int[]{}; + for (int i = values.length - 1; i > 0; i--) { // каждый проход уменьшает сравниваемую область массива + for (int j = 0; j < i; j++) { // с помощью временной переменной переставляем максимальное + if (values[j] > values[j + 1]) { // значение правее + int buffer = values[j]; + values[j] = values[j + 1]; + values[j + 1] = buffer; + } + } + } + return values; } /** From d615bbec142191e7e572333c94c72c783d2c80f3 Mon Sep 17 00:00:00 2001 From: Snegopad-izh Date: Tue, 30 Nov 2021 13:35:03 +0400 Subject: [PATCH 10/12] test isPrimary OK --- .../epam/izh/rd/online/service/SimpleMathService.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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 c2dc1950..3c973c89 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 @@ -157,7 +157,15 @@ public int[] sort(int[] values) { */ @Override public boolean isPrimary(int number) { - return false; + + boolean isItPrimary = true; //если дальше проверку пройдёт, то число натуральное + + for (int i = 2; i < number - 1; i++) { + if (number % i == 0) { + isItPrimary = false; + } + } + return isItPrimary; } /** From 2f0744c521842f270fe5c193fc8aaaf764a4cc5d Mon Sep 17 00:00:00 2001 From: Snegopad-izh Date: Tue, 30 Nov 2021 14:19:30 +0400 Subject: [PATCH 11/12] all tests OK --- .../izh/rd/online/service/SimpleMathService.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 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 3c973c89..12c87fce 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 @@ -116,14 +116,14 @@ public long calcFactorial(int initialVal) { */ @Override public long calcFibonacci(int number) { - if (number == 0) { + if (number == 0) { // защита от нуля return 0; } long a = 0; long fibonacci = 1; - for (int i = 2; i <= number; ++i) { + for (int i = 2; i <= number; i++) { // складываем и сохраняем long n = a + fibonacci; a = fibonacci; fibonacci = n; @@ -175,6 +175,12 @@ public boolean isPrimary(int number) { */ @Override public int[] reverseArray(int[] values) { - return new int[]{}; + + int buffer[] = new int[values.length]; + + for (int i = 0; i < values.length; i++) { + buffer[i] = values[values.length - 1 -i]; + } + return buffer; } } From 8d59f9f9b5b2b717d249cd1e53879c912843ab24 Mon Sep 17 00:00:00 2001 From: Snegopad-izh Date: Tue, 30 Nov 2021 19:22:24 +0400 Subject: [PATCH 12/12] modified isPrimary and all test OK --- .../epam/izh/rd/online/service/SimpleMathService.java | 9 +++------ 1 file changed, 3 insertions(+), 6 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 12c87fce..2c692406 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 @@ -157,15 +157,12 @@ public int[] sort(int[] values) { */ @Override public boolean isPrimary(int number) { - - boolean isItPrimary = true; //если дальше проверку пройдёт, то число натуральное - for (int i = 2; i < number - 1; i++) { if (number % i == 0) { - isItPrimary = false; + return false; } } - return isItPrimary; + return true; } /** @@ -179,7 +176,7 @@ public int[] reverseArray(int[] values) { int buffer[] = new int[values.length]; for (int i = 0; i < values.length; i++) { - buffer[i] = values[values.length - 1 -i]; + buffer[i] = values[values.length - 1 - i]; } return buffer; }