• python 实例六


    题目:斐波那契数列。

    程序分析:这个数列从第3项开始,每一项都等于前两项之和。故

    n=1,2,f=1

    n>2,f=f(n-1)+f(n-2)

    例如:1,1,2,3,5,8.....

    >>> def f6(n):
    	if n==1 or n==2:
    		return 1
    	elif n>2:
    		return f6(n-1)+f6(n-2)
    	else:
    		print 'please input an incorrect number'
    >>> for i in range(1,10): print f6(i) 1 1 2 3 5 8 13 21 34 >>> f6(-2) please input an incorrect number

     网上答案:

    方法一

    #!/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]
  • 相关阅读:
    DOM总结
    BOM总结
    备忘录设计模式
    策略模式
    迭代器模式
    观察者模式
    装饰模式
    脚本工具(获取某个文件夹下的所有图片属性批量生成css样式)
    ajax传输中文乱码解决方法
    java Serialization and Deserializaton
  • 原文地址:https://www.cnblogs.com/evablogs/p/6783498.html
Copyright © 2020-2023  润新知