python编程输出斐波那契数列(编写python程序,输出斐波那契数列的
斐波那契数列用python怎么表示
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。
Python 实现斐波那契数列代码如下:
#?-*-?coding:?UTF-8?-*-
#?Filename?:?test.py
#?author?by?:?
#?Python?斐波那契数列实现
#?获取用户输入数据
nterms?=?int(input("你需要几项?"))
#?第一和第二项
n1?=?0
n2?=?1
count?=?2
#?判断输入的值是否合法
if?nterms?=?0:
???print("请输入一个正整数。")
elif?nterms?==?1:
???print("斐波那契数列:")
???print(n1)
else:
???print("斐波那契数列:")
???print(n1,",",n2,end="?,?")
???while?count??nterms:
???????nth?=?n1?+?n2
???????print(nth,end="?,?")
???????#?更新值
???????n1?=?n2
???????n2?=?nth
???????count?+=?1
执行以上代码输出结果为:
你需要几项? 10
斐波那契数列:
0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 ,
用Python输出斐波那契数列的前n项,其中要输出的总的项数n和每行要打印的个数?
下面是用 Python 输出斐波那契数列前 n 项,每行打印 m 个数字的代码:
代码中,使用 a 和 b 分别表示斐波那契数列中的前两个数,初始化为 0 和 1。在循环中,每次计算 a 和 b 的和,然后更新 a 和 b 的值。同时,使用计数器 count 记录已经输出的数字个数,当 count 能够被 m 整除时,换行输出。最后,在函数结束时再次换行,让输出更加美观。
在调用函数时,可以根据需要设置输出的总项数 n 和每行打印的个数 m。
Python实现斐波那契数列
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
n=39
????????见到题目很自然联想到用递归或是用数组将前面的结果全部存储起来(这个想法其实和递归没区别),写起来最简单。但实际写出来发现不现实,运行效率太低,提交答案的时候果然提示超出要求时间,程序太过复杂。查阅答案的时候才发现一个很巧妙的方法(主要还是自己太笨了脑筋不会拐弯=.=||),其实F(n)=F(n-1)+F(n-2),也就是说整个运算过程其实只用保存两个数值即可计算出所需结果,并不需要保存前面的全部结果。2个数值,就应该联想到通过模2来存取数值(写到这里愈发觉得自己是个猪头),这样大大提高了效率,降低了存储空间。
? ? ? ? 其次是在实现过程中要注意一个小问题,最开始本猪写的是 for i in range(2,n) ,后来发现答案全错了,原来是因为n=2时, range(2,2) 为0,并不会运算下面的值,所以需要多算一位。
# -*- coding:utf-8 -*-
class Solution:
? ? def __init__(self):
? ? ? ? self.temp_Array = [0,1]
? ? def Fibonacci(self, n):
? ? ? ? if type(n) != int or n = 0:
? ? ? ? ? ? return False
? ? ? ? elif n == 1:
? ? ? ? ? ? return 1
? ? ? ? else:
? ? ? ? ? ? for i in range(2,n+1):
? ? ? ? ? ? ? ? self.temp_Array[i%2] = self.temp_Array[0]+self.temp_Array[1]
? ? ? ? ? ? return self.temp_Array[n%2]
python做斐波那契数列。
直接创建一个类然后调用下面的def函数即可
#斐波那契数列
'''
第一位是1
第二位是1
第三位是2
公式位F(n)=f(n-1)+f(n-2)
'''
def get_Fibonacci_sequence(n):
'''输入n,遍历到第n位的斐波那契数列'''
a,b=0,1
if n=3:#即等于2 相当于1,2位特殊处理
for i in range(n-1):#操作次数是n-1,去除一次第一位的操作
c=a+b
a,b,=b,c
print(b)#这里选择先改变再输出,可以减少1次的循环
def get_Fibonacci_Num(n):
'''输入n,遍历到第n位的斐波那契数列的第n位数'''
a, b = 0, 1
if n = 3: # 即等于2 相当于1,2位特殊处理
for i in range(n - 1): # 操作次数是n-1,去除一次第一位的操作
c = a + b
a, b, = b, c
# 这里选择先改变再输出,可以减少1次的循环
return b
def get_Fibonacci_Num_recursion(n):
'''输入n,遍历到第n位的斐波那契数列的第n位数,递归实现'''
if n==1 or n==2:#特别注意,这里要用逻辑或判断,不能直接用或判断,
return 1
else:
return get_Fibonacci_Num_recursion(n-1)+get_Fibonacci_Num_recursion(n-2)
get_Fibonacci_sequence(11)
print(get_Fibonacci_Num(11))
print(get_Fibonacci_Num_recursion(11))
计算机二级Python试题解读:输出斐波那契数列
题目:
根据斐波那契数列的定义,F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n=2),输出不大于50的序列元素。例如:屏幕输出实例为:0.1.1.2.3…(略)。
代码模板:
考查知识点: while循环结构、多变量赋值。
试题解读
while是循环结构的关键字,后面紧跟循环条件。题目要求输出不大于50的序列元素,变量a存储斐波那契数列元素,即变量a的值不大于50,即条件表达式:
a=50
填写代码的第2个位置为语句:
a,b=_______
该语句为a和b赋值,a是斐波那契数列的第n项元素,b是斐波那契数列的第n+1项元素,且初始a=0,b=1,则应将b赋值给a,a+b赋值给b,即代码位置处写入下面的表达式:
a,b= b,a+b
完整的程序代码:
知识点
1、 while循环结构
while循环结构的语法为:
其中,表达式是循环执行的条件,每次循环执行前,都要对表达式进行计算,表达式返回逻辑值,当表达式返回结果为真时则执行循环体,否则退出循环,如果表达式返回结果在循环开始时就为假,则不执行循环体,直接退出循环;循环体包含一条或多条语句。
单个的变量、逻辑值、数值也是表达式。Python规定,当表达式需要返回逻辑值时,非0的数值为真值,0值为假值。
2、多变量赋值操作
可以在一行赋值语句中创建多个变量,语法规则是 :
变量名称1,变量名称2,……,变量名称n = 值1,值2,……值n
每个变量名称之间用英文逗号分隔。
例如下面的语句创建了两个变量num1和num2,num1的值是20,num2的值是30。