From 7dcc0d2ff43531981eff07c0f54f0f627099b0f7 Mon Sep 17 00:00:00 2001 From: VadimBoz Date: Sun, 23 Feb 2025 18:17:20 +0300 Subject: [PATCH 1/3] kotlin02_hw --- src/main/kotlin/ru/otus/homework/fizzbuzz.kt | 22 +++++++++++++++++++- src/main/kotlin/ru/otus/homework/sumoftwo.kt | 18 +++++++++++++++- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/ru/otus/homework/fizzbuzz.kt b/src/main/kotlin/ru/otus/homework/fizzbuzz.kt index 6e04be1..872dc55 100644 --- a/src/main/kotlin/ru/otus/homework/fizzbuzz.kt +++ b/src/main/kotlin/ru/otus/homework/fizzbuzz.kt @@ -1,6 +1,26 @@ package ru.otus.homework +/** +Функция `fizzbuzz` принимает целое число `n` размер массива чисел, который заполняется от 0. +Реализуйте тело функции следующим образом: + +1. Создается массив чисел от 0 размерностью n +2. Итерируемся по массиву чисел и заполняем выходной массив строк в зависимости от текущего числа: + 1. Если число кратно трем, то в массив добавляем строку `Fizz` + 2. Если число кратно пяти, то в массив добавляем строку `Buzz` + 3. Если число кратно и трем, и пяти, то в массив добавляем строку `FizzBuzz` (число 0 также должно добавлять строку `FizzBuzz`) + 4. Если число не кратно ни одному их этих чисел, то в массив нужно положить просто само число приведенное к строке + */ + fun fizzbuzz(n: Int): Array { - TODO("Выполните задание") + val result = Array(n) { "$it" } + for (i in 0 until n) { + when { + i == 0 || (i % 3 == 0 && i % 5 == 0) -> result[i] = "FizzBuzz" + i % 5 == 0 -> result[i] = "Buzz" + i % 3 == 0 -> result[i] = "Fizz" + } + } + return result } \ 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..a4fc527 100644 --- a/src/main/kotlin/ru/otus/homework/sumoftwo.kt +++ b/src/main/kotlin/ru/otus/homework/sumoftwo.kt @@ -1,6 +1,22 @@ package ru.otus.homework +/** +Функция `sumOfTwo` принимает массив целых чисел `numbers`, целое число `target`. + +Реализуйте тело функции таким образом, чтобы она возвращала массив целых чисел, состоящий из +индексов элементов массива numbers так, +чтобы сумма значений чисел находящихся на этих индексах была равна числу target. + +Достаточно найти только одну пару чисел, удовлетворяющих условию. + +Если таких чисел нет, то выбросьте исключение `IllegalArgumentException` + */ fun sumOfTwo(numbers: IntArray, target: Int): IntArray { - TODO("Выполните задание") + for (i in numbers.indices) { + for (j in i + 1 until numbers.size) { + if (numbers[i] + numbers[j] == target) return intArrayOf(i, j) + } + } + throw IllegalArgumentException() } \ No newline at end of file From 2b84dab8e1797fa94d03c007382187d22c7d512d Mon Sep 17 00:00:00 2001 From: VadimBoz Date: Sun, 23 Feb 2025 18:59:53 +0300 Subject: [PATCH 2/3] kotlin02_hw refactoring --- src/main/kotlin/ru/otus/homework/fizzbuzz.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/ru/otus/homework/fizzbuzz.kt b/src/main/kotlin/ru/otus/homework/fizzbuzz.kt index 872dc55..f55dd9d 100644 --- a/src/main/kotlin/ru/otus/homework/fizzbuzz.kt +++ b/src/main/kotlin/ru/otus/homework/fizzbuzz.kt @@ -14,12 +14,13 @@ package ru.otus.homework fun fizzbuzz(n: Int): Array { - val result = Array(n) { "$it" } + val result = Array(n) { "$it" } for (i in 0 until n) { - when { - i == 0 || (i % 3 == 0 && i % 5 == 0) -> result[i] = "FizzBuzz" - i % 5 == 0 -> result[i] = "Buzz" - i % 3 == 0 -> result[i] = "Fizz" + result[i] = when { + i == 0 || (i % 3 == 0 && i % 5 == 0) -> "FizzBuzz" + i % 5 == 0 -> "Buzz" + i % 3 == 0 -> "Fizz" + else -> continue } } return result From 7f1a57a061c6d088cb5bdab62b3830e27e293ce0 Mon Sep 17 00:00:00 2001 From: VadimBoz Date: Sun, 23 Feb 2025 20:23:55 +0300 Subject: [PATCH 3/3] kotlin02_hw refactoring2 --- src/main/kotlin/ru/otus/homework/sumoftwo.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/ru/otus/homework/sumoftwo.kt b/src/main/kotlin/ru/otus/homework/sumoftwo.kt index a4fc527..3d78d58 100644 --- a/src/main/kotlin/ru/otus/homework/sumoftwo.kt +++ b/src/main/kotlin/ru/otus/homework/sumoftwo.kt @@ -13,7 +13,7 @@ package ru.otus.homework */ fun sumOfTwo(numbers: IntArray, target: Int): IntArray { - for (i in numbers.indices) { + for (i in 0 until numbers.size - 1) { for (j in i + 1 until numbers.size) { if (numbers[i] + numbers[j] == target) return intArrayOf(i, j) }