foriinrange(20): print(fib_recur(i), end=' ') >>>01123581321345589144233377610987159725844181 递归是一种写法最简洁的方法,但它是效率非常低,因为会出现大量的重复计算,时间复杂度是:O(1.618 ^ n),1.618 是黄金分割点。同时受限于 Python 中递归的最大深度是 1000,所以用递归来求解并不是一种可取的办法。
for i in range(n): a, b = b, a + b return a for i in range(20): print(fib_loop(i), end=" ") >>> 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 1. 2. 3. 4. 5. 6. 7. 8. 这种算法的时间复杂是O(n),呈线性增长,如果数据量巨大,速度越到...
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 输入格式 输入包含一个整数n。 输出格式 输出一行,包含一个整数,表示Fn除以10007的余数。 递推 deffib_loop(n):a,b=0,1foriinrange(n):a,b=b,a+breturnaprint(fib_lo...
lambda关键字我曾在C#和Scheme里面用过,Python里面的lambda比C#里简便,并很像Scheme里的用法,所以很快就适应了。在用PythonShell声明一些小函数时经常用这种写法。 5)刚学完数据结构的Python程序员: 01deffib(n): 02x,y=0,1 03while(n): 04x,y,n=y,x+y,n-1 05returnx 说明: 前面的Fibonacci函数都是树...
9)准备参加ACM比赛的Python程序员: def fib(n): lhm=[[0,1],[1,1]] rhm=[[0],[1]] em=[[1,0],[0,1]] #multiply two matrixes def matrix_mul(lhm,rhm): #initialize an empty matrix filled with zero result=[[0 for i in range(len(rhm[0]))] for j in range(len(...
Python实现 importsys#循环 返回第 n 个数defloop(n):first,second=0,1foriinrange(n):first,second=second,first+secondreturnfirst#循环,返回斐波那契数列deffib(n):v=[0,1]foriinrange(2,n+1):v.append(v[i-1]+v[i-2])returnv# return v[n]if__name__=='__main__':print(fib(int(sys...
def Fibonacci(n):if n == 1:return 1dic = [-1 for i in xrange(n)]dic[0], dic[1] = 1, 1helper(n-1, dic)linesize = 5file=open('Fibonacci.txt', 'w')for loop in range(len(dic)/linesize):line = []for i in range(linesize):line.append(dic[i + linesize * ...
def fibonacci(n): l, v = 0, 1 for i in range(1, n ,2): l += v v += l if n & 1: return v return l # 这个当然是最慢的了,能算完100万就很不错了更新: 很多知友说上面的时间复杂的是 O(n),自己后面分析一下似乎的确如此,但可能是因为python的某些机制,我最上面那段简单的代码尽...
fibonacci_whileloop_update(n): if n<=1 : return n else: a,b = 0,1 i = 2 while i <= n: a,b = b,a+b i+=1 return b for i in range(100): # print(fibonacci_list(i)) # print(fibonacci_recursion(i)) # print(fibonacci_forloop_update(i)) print(fibonacci_whileloop_update...
This code snippet has a function “fibonacci” that takes an integer “n” as input and returns the nth number in the Fibonacci series using recursion. We then call this function in the “main” function using a “for” loop to print out the first “n” numbers in the series. Advantages...