В тази програма ще се научите да обръщате дадено изречение с помощта на рекурсивен цикъл в Kotlin.
Пример: Обърнете изречението с помощта на рекурсия
fun main(args: Array) ( val sentence = "Go work" val reversed = reverse(sentence) println("The reversed sentence is: $reversed") ) fun reverse(sentence: String): String ( if (sentence.isEmpty()) return sentence return reverse(sentence.substring(1)) + sentence(0) )
Когато стартирате програмата, изходът ще бъде:
Обратното изречение е: krow oG
В горната програма имаме рекурсивна функция reverse().
При всяка итерация добавяме (обединяваме) резултата от следващата reverse()функция към първия символ на изречението, използвайки charAt(0).
Рекурсивното повикване трябва да е преди charAt(), тъй като по този начин последните знаци ще започнат да се добавят отляво. Ако обърнете реда, ще получите първоначалното изречение.
В крайна сметка завършваме с празно изречение и reverse()връщаме обърнатото изречение.
| Повторение | обратен() | подниз () | reversedString |
|---|---|---|---|
| 1 | обратен ("Отидете на работа") | "o работа" | резултат + "G" |
| 2 | обратна ("o Работа" | "Работа" | резултат + "o" + "G" |
| 3 | обратно ("Работа") | "Работа" | резултат + "" + "o" + "G" |
| 4 | обратно ("Работа") | "орк" | резултат + "W" + "" + "o" + "G" |
| 5 | обратно ("ork") | "rk" | резултат + "o" + "W" + "" + "o" + "G" |
| 6 | обратно ("rk") | "к" | резултат + "r" + "o" + "W" + "" + "o" + "G" |
| 7 | обратно ("k") | "" | резултат + "k" + "r" + "o" + "W" + "" + "o" + "G" |
| Финал | обратен("") | - | "" + "k" + "r" + "o" + "W" + "" + "o" + "G" = "kroW oG" |
Ето еквивалентния Java код: Java програма за обръщане на изречение








