# 程序：展示斐波那契数列

> 原文： [https://www.programiz.com/kotlin-programming/examples/fibonacci-series](https://www.programiz.com/kotlin-programming/examples/fibonacci-series)

#### 在此程序中，您将学习使用`for`和`while`循环在 Kotlin 中显示斐波那契数列。 您将学习如何显示序列，直到显示一个特定的术语或数字。

斐波那契数列是一个系列，其中下一项是前两个项的总和。 斐波那契数列的前两个项是 0，然后是 1。

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

```

## 示例 1：使用`for`循环显示斐波那契数列

```kt
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
    }
}
```

运行该程序时，输出为：

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

在上面的程序中，第一项（`t1`）和第二项（`t2`）分别被初始化为斐波那契数列 0 和 1 的前两个项。

与 Java 不同，我们在运算符中使用*范围*迭代到`n`（项数），并显示存储在变量`t1`中的前两项的和。

以下是等效的 Java 代码：[显示斐波那契序列的 Java 程序](/java-programming/examples/fibonacci-series)。

* * *

您还可以在 Kotlin 中使用`while`循环生成斐波那契数列。

## 示例 2：使用`while`循环显示斐波那契数列

```kt
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++
    }
}
```

输出与上述程序相同。

在上面的程序中，与`for`循环不同，我们必须在循环体内增加`i`的值。

尽管两个程序在技术上都是正确的，但在这种情况下最好使用`for`循环。 这是因为迭代次数（从 1 到`n`）是已知的。

* * *

## 示例 3：显示最大为给定数字（而不是项）的斐波那契数列

```kt
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:

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

该程序将序列显示到给定数字（100），而不是显示序列直至特定数字。

为此，我们只需要比较最后两个数字（`t1`）与`n`的和即可。

如果`t1`小于或等于`n`，则打印`t1`。 否则，我们完成了所有条款的显示。