斐波那切数列--剑指offer

题目:
写一个函数,输入n,求斐波那切数列的第n项。斐波那切数列的定义如下
0 n=0
f(n) = 1 n=1
f(n-1)+ f(n-2) n>1

思路:
直接进行递归会出现大量的重复计算,效率很低。因此使用循环的方法解决。

public class Solution {
    public static long Fibonacci(int n){
        if (n<=0) return 0;
        if (n==1) return 1;
        long before = 0;
        long after = 1;
        long ans=0;
        for (int i = 1; i <n ; i++) {
            ans = before+after;
            before = after;
            after = ans;
        }
        return ans;
    }
}
斐波那契数列是一个经典的数学序列,在编程中也经常作为练习题出现在各种平台,包括PTA(Programming Teaching Assistant)。下面将为您详细介绍如何通过循环结构在PTA上编写一个计算斐波那契数列的程序。 ### 斐波那契数列简介 斐波那契数列由0和1开始,之后每一项都是前两项之和。即: \[ F(0) = 0 \] \[ F(1) = 1 \] \[ F(n) = F(n - 1) + F(n - 2), (n >= 2) \] 例如:`0, 1, 1, 2, 3, 5, 8, 13...` ### 使用Python语言实现斐波那契数列的循环算法 ```python def fibonacci_loop(n): if n <= 0: return "输入值应为正整数" fib_sequence = [0, 1] # 初始化列表 for i in range(2, n+1): next_value = fib_sequence[-1] + fib_sequence[-2] fib_sequence.append(next_value) return fib_sequence[:n] # 示例用法 if __name__ == "__main__": num_terms = int(input("请输入你想得到的斐波那契数列长度:")) print(f"前{num_terms}个斐波那契数字分别是:", end=' ') result = fibonacci_loop(num_terms) if isinstance(result, list): print(", ".join(str(i) for i in result)) ``` 此段代码首先检查用户提供的数值是否有效,并初始化了一个包含最初两个元素 `[0, 1]` 的数组 `fib_sequence` 。然后我们利用for循环迭代地添加新的成员到这个序列中直到达到所需的大小为止;最后打印出结果。 对于PTA题目而言,通常会给出特定的要求如函数名称、返回形式等信息,请按照题目说明适当调整上述模板中的内容以满足需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值