From 2fc6803985844e833e50b4318977cce62a57526b Mon Sep 17 00:00:00 2001 From: Vp-Ma Date: Thu, 14 Aug 2025 11:19:49 +0300 Subject: [PATCH 1/3] Homework_1 implementation ( fizzbuss ) --- src/main/kotlin/ru/otus/homework/fizzbuzz.kt | 32 ++++++++++++++++++-- 1 file changed, 30 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..685a400 100644 --- a/src/main/kotlin/ru/otus/homework/fizzbuzz.kt +++ b/src/main/kotlin/ru/otus/homework/fizzbuzz.kt @@ -1,6 +1,34 @@ package ru.otus.homework +import kotlin.random.Random + fun fizzbuzz(n: Int): Array { - TODO("Выполните задание") -} \ No newline at end of file + + val names = arrayOf("Fizz", "Buzz") + val numbers = arrayOfNulls(n) + val result = arrayOfNulls(n) + + numbers[0] = 0 + for( i in 1..n-1) { + numbers[i] = Random.nextInt(0, 25) + } + for(i in 0..n-1){ + if( numbers[i] == 0){ + result[i] = names[0] + names[1] + } + else if ( numbers[i]?.rem(3) ==0 && numbers[i]?.rem(5) ==0 ){ + result[i] = names[0]+names[1] + } + else if( numbers[i]?.rem(3) == 0 ){ + result[i] = names[0] + } + else if( numbers[i]?.rem(5) == 0 ){ + result[i] = names[1] + } + else { + result[i] = numbers[i].toString() + } + } + return result as Array +} From 1ec381d5dcabb2301c655af95d861b3ad39cf368 Mon Sep 17 00:00:00 2001 From: Vp-Ma Date: Thu, 14 Aug 2025 11:21:06 +0300 Subject: [PATCH 2/3] Homework_1 implementation( sumoftwo ) --- src/main/kotlin/ru/otus/homework/sumoftwo.kt | 21 +++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/ru/otus/homework/sumoftwo.kt b/src/main/kotlin/ru/otus/homework/sumoftwo.kt index 70d72e5..d914677 100644 --- a/src/main/kotlin/ru/otus/homework/sumoftwo.kt +++ b/src/main/kotlin/ru/otus/homework/sumoftwo.kt @@ -2,5 +2,24 @@ package ru.otus.homework fun sumOfTwo(numbers: IntArray, target: Int): IntArray { - TODO("Выполните задание") + var result = IntArray(2) { 0 } + val inputCnt = numbers.count() + var isTarget = false + + for( i in 0 .. inputCnt-2){ + for( j in i+1 .. inputCnt-1){ + if (numbers[i] + numbers[j] == target) { + result[0] = i + result[1] = j + isTarget = true + break + } + } + if( isTarget ) break + } + if( !isTarget ){ + throw IllegalArgumentException("Target not found") + } + + return result } \ No newline at end of file From 122ef2180be4ee1a2ceb657f7094ad61212c2837 Mon Sep 17 00:00:00 2001 From: Vp-Ma Date: Sun, 17 Aug 2025 09:47:24 +0300 Subject: [PATCH 3/3] Homework 1 refactoring --- src/main/kotlin/ru/otus/homework/fizzbuzz.kt | 22 +++++++------------- src/main/kotlin/ru/otus/homework/sumoftwo.kt | 14 ++----------- 2 files changed, 9 insertions(+), 27 deletions(-) diff --git a/src/main/kotlin/ru/otus/homework/fizzbuzz.kt b/src/main/kotlin/ru/otus/homework/fizzbuzz.kt index 685a400..dfcd66f 100644 --- a/src/main/kotlin/ru/otus/homework/fizzbuzz.kt +++ b/src/main/kotlin/ru/otus/homework/fizzbuzz.kt @@ -13,21 +13,13 @@ fun fizzbuzz(n: Int): Array { for( i in 1..n-1) { numbers[i] = Random.nextInt(0, 25) } - for(i in 0..n-1){ - if( numbers[i] == 0){ - result[i] = names[0] + names[1] - } - else if ( numbers[i]?.rem(3) ==0 && numbers[i]?.rem(5) ==0 ){ - result[i] = names[0]+names[1] - } - else if( numbers[i]?.rem(3) == 0 ){ - result[i] = names[0] - } - else if( numbers[i]?.rem(5) == 0 ){ - result[i] = names[1] - } - else { - result[i] = numbers[i].toString() + for( i in 0..n-1) { + result[i] = when{ + numbers[i] == 0 -> names[0]+names[1] + numbers[i]?.rem(3) ==0 && numbers[i]?.rem(5) ==0 -> names[0]+names[1] + numbers[i]?.rem(3) == 0 -> names[0] + numbers[i]?.rem(5) == 0 -> names[1] + else -> numbers[i].toString() } } return result as Array diff --git a/src/main/kotlin/ru/otus/homework/sumoftwo.kt b/src/main/kotlin/ru/otus/homework/sumoftwo.kt index d914677..7bd67be 100644 --- a/src/main/kotlin/ru/otus/homework/sumoftwo.kt +++ b/src/main/kotlin/ru/otus/homework/sumoftwo.kt @@ -2,24 +2,14 @@ package ru.otus.homework fun sumOfTwo(numbers: IntArray, target: Int): IntArray { - var result = IntArray(2) { 0 } val inputCnt = numbers.count() - var isTarget = false for( i in 0 .. inputCnt-2){ for( j in i+1 .. inputCnt-1){ if (numbers[i] + numbers[j] == target) { - result[0] = i - result[1] = j - isTarget = true - break + return intArrayOf( i, j ) } } - if( isTarget ) break } - if( !isTarget ){ - throw IllegalArgumentException("Target not found") - } - - return result + throw IllegalArgumentException("Target not found") } \ No newline at end of file