编写一个递归函数,用于计算斐波那契数列中的第n项值,并在主函数中调用该函数输出斐波那契数列的前15项。
斐波那契数列:1,1,2,3,5,8,13,21,……
可表示为:f(n)=1,当n<=2;f(n)=f(n-1)+f(n-2),当n>2;
Python实现:
# 递归函数,计算斐波那契数列中的第n项值
def fibonacci(n):
if n <= 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
# 主函数,输出斐波那契数列的前15项
if __name__ == '__main__':
for i in range(1, 16):
print(fibonacci(i), end=' ')
C语言实现:
在C语言中,递归是一种函数调用自身的技术。它可以使解决问题的算法更加简单和优雅。
递归函数包括两个部分:递归基或终止条件和递归部分。递归基是指一个最简单的情况,不再需要调用自身即可返回结果。递归部分是指将问题分解为更小的相同问题的步骤,每次调用自身时问题规模都会减小。
在编写递归函数时,需要注意避免无限循环和过多的递归,否则会导致程序崩溃或栈溢出的错误。
以下是一个计算阶乘的递归函数示例:
int factorial(int n){
if(n == 0)
return 1; //递归基
else
return n * factorial(n-1); //递归部分
}
在这个函数中,如果n等于0,则直接返回1作为递归基;否则,将n乘以小于n的阶乘,直到达到递归基条件。
#include < stdio.h >
// 递归函数,计算斐波那契数列中的第n项值
int fibonacci(int n) {
if (n <= 2) {
return 1;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
// 主函数,输出斐波那契数列的前15项
int main() {
int i;
for (i = 1; i <= 15; i++) {
printf("%d ", fibonacci(i));
}
return 0;
}
-
C语言
+关注
关注
180文章
7591浏览量
135795 -
python
+关注
关注
55文章
4766浏览量
84362
发布评论请先 登录
相关推荐
评论