page contents

Python实战 | 实例教程(3)斐波那契数列

实例1 题目: 输入三个整数x,y,z,请把这三个数由小到大输出。 程序分析: 我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x&g...

实例1

题目: 输入三个整数x,y,z,请把这三个数由小到大输出。

程序分析: 我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

程序源代码:



#!/usr/bin/python
# -*- coding: UTF-8 -*-

l = []
for i in range(3):
x = int(raw_input('integer:\n'))
l.append(x)
l.sort()
print l

以上实例输出结果为:



integer:
8
integer:
5
integer:
6
[5, 6, 8]

实例2

题目: 斐波那契数列。程序分析: 斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。在数学上,费波那契数列是以递归的方法来定义:



F0 = 0 (n=0)

F1 = 1 (n=1)

Fn = F[n-1]+ F[n-2](n=>2)

程序源代码:

方法一



#!/usr/bin/python
# -*- coding: UTF-8 -*-

def fib(n):
a,b = 1,1
for i in range(n-1):
a,b = b,a+b
return a

# 输出了第10个斐波那契数列

print fib(10)

方法二



#!/usr/bin/python
# -*- coding: UTF-8 -*-

# 使用递归
def fib(n):
if n==1 or n==2:
return 1
return fib(n-1)+fib(n-2)


# 输出了第10个斐波那契数列

print fib(10)

以上实例输出了第10个斐波那契数列,结果为:
55

方法三如果你需要输出指定个数的斐波那契数列,可以使用以下代码:



#!/usr/bin/python
# -*- coding: UTF-8 -*-

def fib(n):
if n == 1:
return [1]
if n == 2:
return [1, 1]
fibs = [1, 1]
for i in range(2, n):
fibs.append(fibs[-1] + fibs[-2])
return fibs

# 输出前 10 个斐波那契数列
print fib(10)

以上程序运行输出结果为:

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

  • 发表于 2020-01-15 10:24
  • 阅读 ( 633 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1312 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章