V tomto programu se naučíte zobrazovat řady fibonacci v Kotlinu pomocí smyček for a while. Naučíte se zobrazovat série až ke konkrétnímu výrazu nebo číslu.
Fibonacciho řada je řada, kde další termín je součtem posledních dvou termínů. První dva termíny Fibonacciho sekvence jsou 0 následované 1.
Fibonacciho sekvence: 0, 1, 1, 2, 3, 5, 8, 13, 21,…
Příklad 1: Zobrazte řadu Fibonacci pomocí smyčky 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 ) )
Když spustíte program, výstup bude:
Prvních 10 termínů: 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 +
Ve výše uvedeném programu jsou první (t1) a druhý (t2) výrazy inicializovány na první dva členy Fibonacciho řady 0 a 1.
Na rozdíl od Javy jsme k iteraci do n (počet termínů) použili rozsahy a v operátoru zobrazující součet předchozích dvou termínů uložených v proměnné t1.
Zde je ekvivalentní kód Java: Program Java pro zobrazení řady Fibonacci.
Série fibonacci můžete také generovat pomocí while smyčky v Kotlin.
Příklad 2: Zobrazte sérii Fibonacci pomocí smyčky 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++ ) )
Výstup je stejný jako výše uvedený program.
Ve výše uvedeném programu, na rozdíl od smyčky for, musíme zvýšit hodnotu i uvnitř těla smyčky.
Ačkoli jsou oba programy technicky správné, je v tomto případě lepší použít smyčku. Je to proto, že je znám počet iterací (od 1 do n).
Příklad 3: Zobrazit řadu Fibonacci až na dané číslo (místo výrazů)
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 ) )
Když spustíte program, výstup bude:
Až 100: 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 55 + 89 +
Místo zobrazení řady až po konkrétní číslo ji tento program zobrazí až do daného čísla (100).
K tomu stačí porovnat součet posledních dvou čísel (t1) s n.
Pokud je t1 menší než nebo rovno n, vytiskněte t1. Jinak jsme dokončili zobrazování všech termínů.