剑指offer斐波那契数列python

题目描述

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。

n<=39

思路

斐波那契数列,即第n项为第n-1项和n-2项的和,可用递归,但复杂度高。直接用一个数组保存之前的项即可。

代码

1 # -*- coding:utf-8 -*-
2 class Solution:
3     def Fibonacci(self, n):
4         ans = [0,1,1,2]
5         while n > len(ans) - 1:
6             ans.append(ans[-1]+ans[-2])
7         return ans[n]

原文地址:https://www.cnblogs.com/wangzhihang/p/11781077.html

时间: 2024-11-10 01:47:48

剑指offer斐波那契数列python的相关文章

[剑指OFFER] 斐波那契数列- 跳台阶 变态跳台阶 矩形覆盖

跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. class Solution { public: int jumpFloor(int number) { if(number == 1) return 1; if(number == 2) return 2; int n1 = 1; int n2 = 2; int rtn = 0; for(int i = 3; i <= number; i++) { rtn = n1 + n2; n1 = n2;

剑指offer7: 斐波那契数列第n项(从0开始,第0项为0)

1. 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0).n<=39 2. 思路和方法 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1.1.2.3.5.8.13.21.34.……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1

剑指offer 斐波那契系列

目录 T9-斐波那契用迭代 跳台阶 动规 py2 变态跳台阶 wo的初始迭代方法 数学--移位 py2 矩形覆盖 动规 Py2 T9-斐波那契用迭代 跳台阶 动规 py2 # -*- coding:utf-8 -*- class Solution: def jumpFloor(self, number): # write code here if number<0: return -1 if number <=2: return number a,b=1,2 res = 0 for i in

剑指Offer07 斐波那契数列

1 /************************************************************************* 2 > File Name: 07_Fibonacci.c 3 > Author: Juntaran 4 > Mail: [email protected] 5 > Created Time: 2016年08月29日 星期一 20时23分54秒 6 *****************************************

求斐波那契数列-python

斐波那契数列 Fibonacci sequences(fei bo na qi):0.1.1.2.3.5.8.13.21.34-- 递归算法: 1 def Fibonacci(n): 2 if n <= 1: return n 3 else: return Fibonacci(n - 1) + Fibonacci(n - 2) 迭代算法: 1 def Fibonacci(n): 2 if n <= 1: return n 3 else: 4 oneback,twoback = 1, 0 5 f

斐波那契数列python实现

题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0).时间限制:1秒 空间限制:32768K Python实现 class Solution: def Fibonacci(self, n): if n <= 1: return n if n >= 2: num = [] for i in range(n+1): if i <= 1: num.append(i) else: num.append(num[i-1]+ num[i-2]

斐波那契数列——Python实现

# 功能:求斐波那契数列第 n 个数的值 # 在此设置 n n = 30 print('\n');print('n = ',n) # 代码生成 Fibonacci 序列,存于数组A A = [0]*n A[0] = 1;A[1] = 1 for i in range(2,n): A[i] = A[i-1] + A[i-2] print('\n前 n 个数的斐波那契数列为:');print(A) print('\n斐波那契数列第 n 个数的值为:',A[n-1]); print('\n') # 运

【剑指offer】斐波那契数列

题目1描述: 写一个函数,输入n,求斐波那契数列的第n项.斐波那契数列的定义如下: f(n) = 0 (n = 0);  f(n) = 1 (n = 1);  f(n) = f(n-1)+f(n-2) (n > 1); 分析描述: 在大多数的C语言教科书中,一般会用递归求斐波那契数列.代码如下: long long Fibonacci(unsigned int n) { if(n <= 0) return 0; if(n <= 1) return 1; return Fibonacci(

剑指offer编程题Java实现——面试题9斐波那契数列

题目:写一个函数,输入n,求斐波那契数列的第n项. 1 package Solution; 2 3 /** 4 * 剑指offer面试题9:斐波那契数列 5 * 题目:写一个函数,输入n,求斐波那契数列的第n项. 6 * 0, n=1 7 * 斐波那契数列定义如下:f(n)= 1, n=2 8 * f(n-1)+f(n-2), n>2 9 * @author GL 10 * 11 */ 12 public class No9Fibonacci { 13 14 public static void