В тази програма ще се научите да показвате серия от фибоначи в Kotlin, като използвате цикли for и while. Ще се научите да показвате поредицата до определен термин или число.
Поредицата на Фибоначи е поредица, където следващият член е сумата от предишните два термина. Първите два члена от последователността на Фибоначи е 0, последвано от 1.
Последователността на Фибоначи: 0, 1, 1, 2, 3, 5, 8, 13, 21, …
Пример 1: Показване на серията на Фибоначи, използвайки for цикъл
fun main(args: Array) ( val n = 10 var t1 = 0 var t2 = 1 print("First $n terms: ") for (i in 1… n) ( print("$t1 + ") val sum = t1 + t2 t1 = t2 t2 = sum ) )
Когато стартирате програмата, изходът ще бъде:
Първите 10 условия: 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 +
В горната програма първият (t1) и вторият (t2) термини се инициализират в първите два термина от поредицата на Фибоначи 0 и 1 съответно.
За разлика от Java, ние използвахме диапазони и в оператор за итерация до n (брой термини), показващи сумата от предишните два термина, съхранени в променлива t1.
Ето еквивалентния Java код: Java програма за показване на серия Фибоначи.
Можете също така да генерирате серии на Фибоначи, като използвате цикъл while в Kotlin.
Пример 2: Показване на серията на Фибоначи с помощта на цикъл while
fun main(args: Array) ( var i = 1 val n = 10 var t1 = 0 var t2 = 1 print("First $n terms: ") while (i <= n) ( print("$t1 + ") val sum = t1 + t2 t1 = t2 t2 = sum i++ ) )
Резултатът е същият като горната програма.
В горната програма, за разлика от цикъл for, трябва да увеличим стойността на i вътре в тялото на цикъла.
Въпреки че и двете програми са технически правилни, в този случай е по-добре да използвате for loop. Това е така, защото броят на итерациите (от 1 до n) е известен.
Пример 3: Показване на серия на Фибоначи до дадено число (вместо термини)
fun main(args: Array) ( val n = 100 var t1 = 0 var t2 = 1 print("Upto $n: ") while (t1 <= n) ( print("$t1 + ") val sum = t1 + t2 t1 = t2 t2 = sum ) )
Когато стартирате програмата, изходът ще бъде:
До 100: 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 55 + 89 +
Вместо да показва серията до определен номер, тази програма я показва до даден номер (100).
За това просто трябва да сравним сумата от последните две числа (t1) с n.
Ако t1 е по-малко или равно на n, отпечатайте t1. В противен случай приключихме да показваме всички термини.