Kotlin Program to Display Fibonacci Series

The Fibonacci series is a series where the next term is the sum of pervious two terms. The first two terms of the Fibonacci sequence is 0 followed by 1.

The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, ...

Example 1: Display Fibonacci series using for loop

fun main(args: Array<String>) {
    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
    }
}

When you run the program, the output will be:

First 10 terms: 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 

In the above program, first (t1) and second (t2) terms are initialized to first two terms of the Fibonacci series 0 and 1 respectively.

Unlike Java, we've used ranges and in operator to iterate till n (number of terms) displaying the sum of previous two terms stored in variable t1.

Here's the equivalent Java code: Java Program to Display Fibonacci Series.


You can also generate fibonacci series using a while loop in Kotlin.

Example 2: Display Fibonacci series using while loop

fun main(args: Array<String>) {
    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++
    }
}

The output is same as the above program.

In the above program, unlike a for loop, we have to increment the value of i inside the body of the loop.

Though both programs are technically correct, it is better to use for loop in this case. It's because the number of iteration (from 1 to n) is known.


Example 3: Display Fibonacci series upto a given number (instead of terms)

fun main(args: Array<String>) {
    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
    }
}

When you run the program, the output will be:

Upto 100: 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 55 + 89 + 

Instead of displaying the series upto a specific number, this program displays it until a given number (100).

For this, we just need to compare the sum of last two numbers (t1) with n.

If t1 is less than or equals to n, print t1. Else, we're finished displaying all terms.

Did you find this article helpful?