Kotlin程序显示斐波那契数列
斐波那契数列是一个数列,其中下一个项是前两个项的和。斐波那契数列的前两项是0和1。
斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, ...
示例1:使用for循环显示斐波那契数列
fun main(args: Array<String>) {
val n = 10
var t1 = 0
var t2 = 1
print("前 $n 项: ")
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不同,我们使用 范围 和 in 运算符来迭代至 n
(项数),并显示在变量 t1
中存储的前两项的和。
以下是等效的Java代码:Java程序:显示斐波那契数列
您还可以使用Kotlin的while循环生成斐波那契数列。
示例2:使用while循环显示斐波那契数列
fun main(args: Array<String>) {
var i = 1
val n = 10
var t1 = 0
var t2 = 1
print("前 $n 项: ")
while (i <= n) {
print("$t1 + ")
val sum = t1 + t2
t1 = t2
t2 = sum
i++
}
}
输出与上面的程序相同。
在上面的程序中,与for循环不同,我们必须在循环体内增加 i
的值。
虽然这两个程序在技术上都是正确的,但在这种情况下最好使用for循环。这是因为迭代次数(从1到 n
)是已知的。
示例3:显示斐波那契数列直到给定的数字(而不是项数)
fun main(args: Array<String>) {
val n = 100
var t1 = 0
var t2 = 1
print("直到 $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
。否则,我们已经完成显示所有项。