day16 --------------------------------------------------------------- 实例024:斐波那契数列II 题目 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13-求出这个数列的前20项之和. 分析:就是斐波那契数列的后一项除以前一项,于是写了两个函数 1 def fbs(num): 2 a = [0,1] 3 if num<=2: 4 return a 5 else: 6 for i in range(1,int(…
一.二分查找 二分查找也称之为折半查找,二分查找要求线性表(存储结构)必须采用顺序存储结构,而且表中元素顺序排列. 二分查找: 1.首先,将表中间位置的元素与被查找元素比较,如果两者相等,查找结束,否则利用中间位置将表分成前.后两个子表. 2.如果中间位置元素<被查找元素,则开始位置 = 中间位置,结束位置 = 表的长度-1 3.如果中间位置元素>被查找元素,则开始位置=0,结束位置=中间位置 l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,…
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368...... 这个数列从第3项开始,每一项都等于前两项之和.    递归的方式实现: def fn(n): if n==1: return 1 elif n==2: return 1 else: return fn(n-1)+fn(n-2) n=int(input…
斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列",指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=0,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N* 本文章要解决的问题是: 1.生成前n项斐波那契数列 2.求第n项斐波那契数列的值是…
def fabm(n): if n < 1: print('输入不能小于1') return -1 if n == 1 or n == 2: return 1 else: return fabm(n-1) + fabm(n-2) result = fabm(19) if result != -1: print('结果是%d' % result)…
首先是迭代的方法实现: def f(n): f1, f2, fn = 1, 1, 1 while n>2: fn = f1 + f2 f1 = f2 f2 = fn n = n - 1 return fn 然后用递归的方法实现: def f(n): if n == 1: return 1 if n == 2: return 1 else: return f(n - 1 ) + f(n - 2) 很明显,此时递归的方法比迭代更简单更易懂…
# 递归 def myAdd(a, b): c = a + b print(c) if c > 100: return return myAdd(a + 1, c) #最大递归深度是1000 myAdd(2, 3) # 功能同上递归 a = 2 b = 3 for i in range(1000): c = a + b print(c) a += 1 b = c def myFibo(a, b): c = a + b print(c) if c > 500: return return myF…
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 每个月的兔子数量 1:22:23:4 2+24:6 2+2+25:10 2+2+2+2+26:16 6+6+47:26 10+10+6 第一个月和第二个月兔子不繁殖 第三个月,两个兔子繁殖两个兔子,共四个 第四个月,两个兔子继续繁殖两个兔子,小兔子不繁殖:共6个 以此类推 2,2,4,6,10,16,26 这个数量刚好是斐波那契数列 的两倍 源代码: #…
斐波那契数列介绍: 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1.1.2.3.5.8.13.21.34.……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现代物理.准晶体结构.化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963…
随机输入求素数: x = int(input("please enter the number:")) if x != 1: for i in range(2, x): if x % i == 0: break else: print(x) 求10W以内全部的素数 c = 0 for x in range(2,100000): for i in range(2, int(x ** 0.5)+1): if x % i == 0: break else: c += 1 print(x) p…