斐波那契数列前30项
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229
递归不一定好用,有的场景中,递归会使得效率降低,数字大的话,递归会卡死,
斐波那契数列用递归效率很低,若要显示前100项时候,明显非递归很快实现,递归很慢,所以斟酌使用。
python
递归
代码
def ferb(n):#递归if n<&#61;1:return nelse:return(ferb(n-2)&#43;ferb(n-1))
number&#61;int(input("输出前几项&#xff1a;"))
if number <&#61;0:print("请输入正整数")
else:for i in range(1,number&#43;1):print(ferb(i))
结果&#xff1a;
输出前几项&#xff1a;10
1
1
2
3
5
8
13
21
34
55
>>>
非递归
代码
a &#61; 0
b &#61; 1
c &#61; a&#43;b
number &#61; int(input ("输出前几项的值&#xff1a;"))
for i in range(1,number&#43;1):print(c)c &#61; a&#43;ba,b&#61;b,c
结果&#xff1a;
Java
递归
代码
import java.util.Scanner;public class ferbonacci {public static void main(String[] args) {Scanner scanner &#61; new Scanner(System.in);System.out.println("输出前几项&#xff1a;");int number &#61; scanner.nextInt();if (number<1){System.out.println("请输入正整数");}else{for (int i &#61; 1;i }
结果&#xff1a;
--------------------------------------------------
谢谢&#xff01;