斐波那契数列是一个从 0, 1, 1, 2, 3 等开始的数字序列或数列。在斐波那契数列中,我们手动将前两个数字设为 0 和 1。斐波那契数列的其余部分通过计算前两个数字之和来获得,例如斐波那契数列的第三个数字将是 0+1=1,依此类推。
因此,通常我们可以将斐波那契数列的第 n 项定义为使用查找 **(n-1)th** 和 **(n-2)th** 数字的 **和** 的公式计算。
我们使用 readline() 函数获取用户输入。下面是在 R 程序中使用递归函数打印斐波那契数列的步骤。在此 R 程序中,我们通过向用户提供适当的消息(使用“prompt”)将用户输入接受到变量 terms 中。
函数 fibonacci() 用于计算斐波那契数列的第 n 项。for 循环用于迭代并递归计算每一项。
了解有关如何不使用递归函数查找斐波那契数列的更多信息。
步骤 1:向用户提示适当的消息
步骤 2:使用 readline() 将用户输入存入变量 total_terms
步骤 4:检查 **total_terms > 0** 以验证变量 total_terms 是否有效,如果无效则重新输入值
步骤 5:如果 **total_terms > 0**,则使用 for 循环调用函数 fibonacci() total_terms 次以计算第 n 项。并打印从函数 fibonacci() 返回的值
步骤 1:如果 **n <= 1** 则返回 n,否则转到步骤 2
步骤 2:返回 fibonacci(n-1) + fibonacci(n-2),递归调用函数
# Function fibonacci
fibonacci <- function(n) {
if(n <= 1) {
return(n)
} else {
return(fibonacci(n-1) + fibonacci(n-2))
}
}
# take input from the user
total_terms = as.integer(readline(prompt="How many terms? "))
# check if the total_terms is valid or not
if(total_terms<= 0) {
print("Plese enter a positive integer")
} else {
print("Fibonacci sequence:")
for(i in 0:(total_terms-1)) {
print(fibonacci(i))
}
}
How many terms? 10 [1] "Fibonacci sequence:" [1] 0 [1] 1 [1] 1 [1] 2 [1] 3 [1] 5 [1] 8 [1] 13 [1] 21 [1] 34