# Kotlin Program to Display Fibonacci Series

#### In this program, you’ll learn to display fibonacci series in Kotlin using for and while loops. You’ll learn to display the series upto a specific term or a number.

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.

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.

# Special 95% discount

## Two Machine Learning Fields

There are two sides to machine learning:

• Practical Machine Learning:This is about querying databases, cleaning data, writing scripts to transform data and gluing algorithm and libraries together and writing custom code to squeeze reliable answers from data to satisfy difficult and ill defined questions. It’s the mess of reality.
• Theoretical Machine Learning: This is about math and abstraction and idealized scenarios and limits and beauty and informing what is possible. It is a whole lot neater and cleaner and removed from the mess of reality.

Data Science Resources: Data Science Recipes and Applied Machine Learning Recipes

Introduction to Applied Machine Learning & Data Science for Beginners, Business Analysts, Students, Researchers and Freelancers with Python & R Codes @ Western Australian Center for Applied Machine Learning & Data Science (WACAMLDS) !!!

Latest end-to-end Learn by Coding Recipes in Project-Based Learning:

Applied Statistics with R for Beginners and Business Professionals

Data Science and Machine Learning Projects in Python: Tabular Data Analytics

Data Science and Machine Learning Projects in R: Tabular Data Analytics

Python Machine Learning & Data Science Recipes: Learn by Coding

R Machine Learning & Data Science Recipes: Learn by Coding

Comparing Different Machine Learning Algorithms in Python for Classification (FREE)

`Disclaimer: The information and code presented within this recipe/tutorial is only for educational and coaching purposes for beginners and developers. Anyone can practice and apply the recipe/tutorial presented here, but the reader is taking full responsibility for his/her actions. The author (content curator) of this recipe (code / program) has made every effort to ensure the accuracy of the information was correct at time of publication. The author (content curator) does not assume and hereby disclaims any liability to any party for any loss, damage, or disruption caused by errors or omissions, whether such errors or omissions result from accident, negligence, or any other cause. The information presented here could also be found in public knowledge domains.  `