斐波那契数列Python和Java

本文对比了斐波那契数列的递归与非递归实现方式,通过Python和Java代码展示了不同方法的效率差异。强调在处理大量数据时,非递归方法更优。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Fibonacci sequence

斐波那契数列前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<=1:
        return n
    else:
        return(ferb(n-2)+ferb(n-1))
number=int(input("输出前几项:"))
if number <=0:
    print("请输入正整数")
else:
    for i in range(1,number+1):
        print(ferb(i))

结果:

输出前几项:10
1
1
2
3
5
8
13
21
34
55
>>> 

非递归

代码

a = 0
b = 1
c = a+b
number = int(input ("输出前几项的值:"))
for i in range(1,number+1):
    print(c)
    c = a+b
    a,b=b,c
    

结果:
在这里插入图片描述

Java

递归

代码

import java.util.Scanner;

public class ferbonacci {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输出前几项:");
        int number = scanner.nextInt();
        if (number<1){
            System.out.println("请输入正整数");
        }
        else{
            for (int i = 1;i < number+1;i++){
                int result = ferb(i);
                System.out.println(result);
        }
        }

    }
    public static int ferb(int n){
        if (n <= 1) {
            return n;
        }
        else {
            return ferb(n-2)+ferb(n-1);
        }

    }
}

结果:
在这里插入图片描述
--------------------------------------------------
谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值