From 8d05c91a93d577d0839a70768d258b6b3c33dfdb Mon Sep 17 00:00:00 2001 From: Andrey Samoykin Date: Sat, 4 Apr 2026 22:49:59 +0900 Subject: [PATCH 1/2] upd homework01 --- build.gradle | 5 +++ settings.gradle | 7 ++++ src/main/kotlin/ru/otus/homework/Main.kt | 34 ++++++++++++++++++++ src/main/kotlin/ru/otus/homework/fizzbuzz.kt | 10 ++++-- src/main/kotlin/ru/otus/homework/sumoftwo.kt | 16 +++++++-- 5 files changed, 68 insertions(+), 4 deletions(-) create mode 100644 src/main/kotlin/ru/otus/homework/Main.kt diff --git a/build.gradle b/build.gradle index f4ad580..3b5521b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,6 @@ plugins { id 'org.jetbrains.kotlin.jvm' version '2.0.21' + id 'application' } java { @@ -24,6 +25,10 @@ repositories { mavenCentral() } +application { + mainClass = 'ru.otus.homework.MainKt' +} + dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib" implementation 'org.junit.jupiter:junit-jupiter:5.8.1' diff --git a/settings.gradle b/settings.gradle index 995211b..d9b099b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,9 @@ +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + } +} + rootProject.name = 'homework01' diff --git a/src/main/kotlin/ru/otus/homework/Main.kt b/src/main/kotlin/ru/otus/homework/Main.kt new file mode 100644 index 0000000..154b738 --- /dev/null +++ b/src/main/kotlin/ru/otus/homework/Main.kt @@ -0,0 +1,34 @@ +package ru.otus.homework + +fun main() { + println("Метод fizzbuzz") + val size = 5 + val fizzResult = fizzbuzz(size) + println("Input: n = $size") + println("Output: [${fizzResult.joinToString()}]") + for (i in fizzResult.indices) { + val value = fizzResult[i] + val description = when { + i == 0 -> "FizzBuzz" + value == "FizzBuzz" -> "кратно 3 и 5" + value == "Fizz" -> "кратно 3" + value == "Buzz" -> "кратно 5" + else -> "не кратно 3 и 5" + } + + println("$i - $description") + } + println() + println("Метод sumOfTwo") + val numbers = intArrayOf(2, 11, 7, 15) + val target = 9 + val sumResult = sumOfTwo(numbers, target) + + println("Input: numbers = [${numbers.joinToString()}], target = $target") + println("Output: ${sumResult.joinToString()}") + println( + "numbers[${sumResult[0]}](${numbers[sumResult[0]]}) + " + + "numbers[${sumResult[1]}](${numbers[sumResult[1]]}) == $target, " + + "result = [${sumResult.joinToString()}]" + ) +} \ No newline at end of file diff --git a/src/main/kotlin/ru/otus/homework/fizzbuzz.kt b/src/main/kotlin/ru/otus/homework/fizzbuzz.kt index 6e04be1..2435111 100644 --- a/src/main/kotlin/ru/otus/homework/fizzbuzz.kt +++ b/src/main/kotlin/ru/otus/homework/fizzbuzz.kt @@ -1,6 +1,12 @@ package ru.otus.homework - fun fizzbuzz(n: Int): Array { - TODO("Выполните задание") + return Array(n) { value -> + when { + value % 15 == 0 -> "FizzBuzz" + value % 3 == 0 -> "Fizz" + value % 5 == 0 -> "Buzz" + else -> value.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..0b14314 100644 --- a/src/main/kotlin/ru/otus/homework/sumoftwo.kt +++ b/src/main/kotlin/ru/otus/homework/sumoftwo.kt @@ -1,6 +1,18 @@ package ru.otus.homework - fun sumOfTwo(numbers: IntArray, target: Int): IntArray { - TODO("Выполните задание") + val seen = mutableMapOf() + + for (i in numbers.indices) { + val complement = target - numbers[i] + val complementIndex = seen[complement] + + if (complementIndex != null) { + return intArrayOf(complementIndex, i) + } + + seen[numbers[i]] = i + } + + throw IllegalArgumentException("No two sum solution") } \ No newline at end of file From 2fd278884e7f210372e308eeac61933d567d4583 Mon Sep 17 00:00:00 2001 From: Andrey Samoykin Date: Sat, 4 Apr 2026 23:47:02 +0900 Subject: [PATCH 2/2] upd --- settings.gradle | 7 ------- 1 file changed, 7 deletions(-) diff --git a/settings.gradle b/settings.gradle index d9b099b..995211b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,9 +1,2 @@ -pluginManagement { - repositories { - gradlePluginPortal() - mavenCentral() - } -} - rootProject.name = 'homework01'