python3 求斐波那契数列(Fibonacci sequence)

输出斐波那契数列的前多少个数。

利用函数

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan

# ----斐波那契数列(Fibonacci sequence)-----

def check_num(number:str):
    ‘‘‘
    对输入的字符串检查,正整数,返回Ture,否则返回False
    :param number: 输入的字符串
    :return: 符合要求,返回Ture,不符合返回False
    ‘‘‘
    # 输入不能是1,要大于等于2
    if intput.isdigit() and intput != ‘1‘:
        return True
    else:
        return False

def fib(times:int):
    ‘‘‘
    求出斐波那契数列的列表
    :param times: 斐波那契数列的个数
    :return: 返回斐波那契数列的列表
    ‘‘‘
    # 先定义前两个数
    fib = [1, 1]
    for i in range(count - 2):
        fib.append(fib[-1] + fib[-2])
    return fib

if __name__ == ‘__main__‘:
    intput = input("你想输出多少个斐波那契数列?")

    if check_num(intput):
        count = int(intput)
        print(fib(count))
    else:
        print("请输入一个大于1正整数")

  效果:

C:\Python36\python.exe D:/Py/1704/day02/Fib_test.py
你想输出多少个斐波那契数列?20
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765]

Process finished with exit code 0

  

原文地址:https://www.cnblogs.com/hiuhungwan/p/9241462.html

时间: 2024-10-05 01:07:12

python3 求斐波那契数列(Fibonacci sequence)的相关文章

python实现斐波那契数列(Fibonacci sequence)

使用Python实现斐波那契数列(Fibonacci sequence) 斐波那契数列形如 1,1,2,3,5,8,13,等等.也就是说,下一个值是序列中前两个值之和.写一个函数,给定N,返回第N个斐波那契数字.例如,1返回1 6返回8 我选择了两种方法,一种是将list变成一个队列,另一个则是使用环形队列.不多说,直接上代码:后面我会对为什么这样实现做一个解释 第一个是使用队列的方式: 1 def fibonacciSeq(num): 2 fibonacciSeqList = [] 3 for

使用循环解决斐波那契数列Fibonacci sequence

1 # encoding:utf-8 2 ''' 3 Created on 2017年8月7日 4 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, 5 小兔子长到第三个月后每个月又生一对兔子, 6 假如兔子都不死,问每个月的兔子总数为多少? 7 知识链接: 8 1.在使用函数传递变量时不要同全局变量的名称一样 9 2.全局变量在函数中使用时,需要用 global声明 10 @author: wangtaoyuan 11 ''' 12 new = 1#刚出生的小兔子对数 13

poj 3070 Fibonacci (矩阵快速幂求斐波那契数列的第n项)

题意就是用矩阵乘法来求斐波那契数列的第n项的后四位数.如果后四位全为0,则输出0,否则 输出后四位去掉前导0,也...就...是...说...输出Fn%10000. 题目说的如此清楚..我居然还在%和/来找后四位还判断是不是全为0还输出时判断是否为0然后 去掉前导0.o(╯□╰)o 还有矩阵快速幂的幂是0时要特判. P.S:今天下午就想好今天学一下矩阵乘法方面的知识,这题是我的第一道正式接触矩阵乘法的题,欧耶! #include<cstdio> #include<iostream>

求斐波那契数列的第n个数(递归、非递归)

用递归的方式求斐波那契数列的第n个数. 用非递归的方式求斐波那契数列的第n个数. 定义: 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368 特别指出:第0项是0,第1项是第一个1. 这个数列从第2项开始,每一项都等于前两项之和. #include<stdio.h> #include<stdlib.

c语言:写一个函数,输入n,求斐波拉契数列的第n项(5种方法,层层优化)

写一个函数,输入n,求斐波拉契数列的第n项. 斐波拉契数列:1,1,2,3,5,8...,当n大于等于3时,后一项为前面两项之和. 解:方法1:从斐波拉契数列的函数定义角度编程 #include<stdio.h> int fibonacci(int n) { int num1=1, num2=1, num3=0,i; if (n <= 2) { printf("斐波拉契数列的第%d项为:%d\n",n,num1); } else { for (i = 2; i <

利用矩阵求斐波那契数列

利用矩阵求斐波那契数列 flyfish 2015-8-27 矩阵(matrix)定义 一个m*n的矩阵是一个由m行n列元素排成的矩形阵列.矩阵里的元素可以是数字符号或者数学式. 形如 {acbd} 的数表称为二阶矩阵,它由二行二列组成,其中a,b,c,d称为这个矩阵的元素. 形如 {x1x2} 的有序对称为列向量Column vector 设 A={acbd} X={x1x2} 则 Y={ax1+bx2cx1+dx2} 称为二阶矩阵A与平面向量X的乘积,记为AX=Y 斐波那契(Fibonacci

求斐波那契数列的第n项值——9

写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项.斐波那契数列的定义如下: 0            n = 0 F(n) =  1            n = 1 F(n-1)+F(n-2)    n > 1 也就是斐波那契数列为{0,1,1,2,3,5,8,13,21,......F(n-1)+F(n-2)}: 首先可以想到,因为要求第n个斐波那契数,就需要知道第n-1和第n-2个斐波那契数,而求第n-1个斐波那契数就需要知道第n-2个和第n-3个斐波那契数,第n-2个斐波

快速求斐波那契数列(矩阵乘法+快速幂)

斐波那契数列 给你一个n:f(n)=f(n-1)+f(n-2) 请求出 f(f(n)),由于结果很大请 对答案 mod 10^9+7; 1<=n<=10^100; 用矩阵乘法+快速幂求斐波那契数列是经典应用: 矩阵公式 C i j=C i k *C k j; 根据递推式 构造2*2矩阵: 原始矩阵 1 0 0 1 矩阵 2 1 1 1 0 原始矩阵与矩阵 2相乘达到转化状态效果: 对矩阵二进行快速幂 乘法:达到快速转化矩阵的效果: 即使达到快速转化状态:那么大的数据范围也很难求解: 高精?这有

poj3070_斐波那契数列(Fibonacci)

用矩阵求斐波那契数列,快速幂log(n),只用求最后4位(加和乘的运算中前面的位数无用) 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { 6 /* 7 (x y)(x y)= (x*x+y*s x*y+y*t) =(x*x+y*s y*(x+t)) 8 (s t)(s t) (s*x+t*s s*y+t*t) (s*(x+t) t*t+y*s) 9 (x y)(a b)= (x*a+y*c x*b+y*d)