diff --git a/src/main/kotlin/ru/otus/homework/fizzbuzz.kt b/src/main/kotlin/ru/otus/homework/fizzbuzz.kt index 6e04be1..6c73f19 100644 --- a/src/main/kotlin/ru/otus/homework/fizzbuzz.kt +++ b/src/main/kotlin/ru/otus/homework/fizzbuzz.kt @@ -1,6 +1,13 @@ package ru.otus.homework - +// шаг 1 задачи пропущен, так как индексы массива по заданию соответствуют числам на указанных индексах fun fizzbuzz(n: Int): Array { - TODO("Выполните задание") + return Array(n) { + when { + it % 3 == 0 && it % 5 == 0 -> "FizzBuzz" + it % 3 == 0 -> "Fizz" + it % 5 == 0 -> "Buzz" + else -> it.toString() + } + } } \ No newline at end of file diff --git a/src/main/kotlin/ru/otus/homework/sumoftwo.kt b/src/main/kotlin/ru/otus/homework/sumoftwo.kt index 70d72e5..24400c2 100644 --- a/src/main/kotlin/ru/otus/homework/sumoftwo.kt +++ b/src/main/kotlin/ru/otus/homework/sumoftwo.kt @@ -2,5 +2,16 @@ package ru.otus.homework fun sumOfTwo(numbers: IntArray, target: Int): IntArray { - TODO("Выполните задание") + val numbersSize = numbers.size + if (numbersSize < 1) throw IllegalArgumentException("Массив должен содержать хотя бы 2 элемента") + numbers.forEachIndexed { index, it -> + if (index == numbersSize - 1) throw IllegalArgumentException("Подходящих чисел не найдено") + if (it + numbers[index + 1] == target) return intArrayOf(index, index + 1) + for (i in index + 1 until numbersSize) { + if (it + numbers[i] == target) { + return intArrayOf(index, i) + } + } + } + throw IllegalArgumentException("Подходящих чисел не найдено") } \ No newline at end of file diff --git a/src/test/kotlin/ru/otus/homework/SumoftwoTest.kt b/src/test/kotlin/ru/otus/homework/SumoftwoTest.kt index 2cc5d9d..7975788 100644 --- a/src/test/kotlin/ru/otus/homework/SumoftwoTest.kt +++ b/src/test/kotlin/ru/otus/homework/SumoftwoTest.kt @@ -26,4 +26,25 @@ class SumoftwoTest { sumOfTwo(intArrayOf(3, 2), 6) } } + + /** + * Кейс для пустого массива + * */ + @Test + fun `testcase 4`() { + assertThrows { + sumOfTwo(IntArray(0), 0) + } + } + + + /** + * Кейс когда числа дающие target находятся не на смежных индексах массива numbers + * */ + @Test + fun `testcase 5`() { + val actual = sumOfTwo(intArrayOf(3, 2, 3), 6) + val expected = intArrayOf(0, 2) + assertArrayEquals(expected, actual) + } } \ No newline at end of file