题目: 斐波那契数列。
程序分析: 斐波那契数列(Fibonacci sequence),从1,1开始,后面每一项等于前面两项之和。图方便就递归实现,图性能就用循环。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name: python练习100——【006】斐波那契数列
Description : python practice
Author : zhangzx
date: 2020-12-06
-------------------------------------------------
Change Activity:
2020-02-19
-------------------------------------------------
"""
while True:
try:
num = int(input('您输入的正整数为: '))
if num>0:
break
else:
print ('您的输入有误,请输入正整数!')
except ValueError:
print ('您的输入有误,请输入正整数!')
# 解法一:递归实现
def fib(num):
if num==1:
return 0
elif num==2:
return 1
else:
return fib(num-1)+fib(num-2)
print("第 %s 个斐波那契数为:"%num,fib(num))
# 解法二:朴素实现
def fib_1(num):
a,b=1,0
for i in range(num):
a,b=b,a+b
return '第 %s 个斐波那契数为: '%num + str(a)
print(fib_1(num))
---------------------------以下是输出-----------------------------
您输入的正整数为: 0
您的输入有误,请输入正整数!
您输入的正整数为: -1
您的输入有误,请输入正整数!
您输入的正整数为: 1
第 1 个斐波那契数为: 0
第 1 个斐波那契数为: 0