python 階乘與斐波那契

2021-09-06 22:17:06 字數 1405 閱讀 3777

(一) 寫乙個函式,接收乙個引數,用來返回這個函式的階乘並輸出

def factorial(n):

if n == 1:

return 1

return factorial(n-1) * n

n = int(input('計算幾的階乘呢?請輸入:\n'))

result = factorial(n)

print('結果是:', result)

結果: 

計算幾的階乘呢?請輸入:

5結果是: 120

(二)寫乙個函式實現斐波那契數列

(1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377......)

要求:接收乙個引數,返回乙個存著等量值的列表

(1)帶 第乙個1的版本(效率最好):

def fib(max):

n, a, b = 0, 0, 1

while n < max:

a, b = b, a + b

n = n + 1

print(a, end=' ')

num = int(input('想要幾個斐波那契數?請輸入:'))

fib(num)

結果:

(二)不帶第乙個 1 的版本(效率最低):

def func(n):

if n == 1:

return 1

elif n == 2:

return 2

else:

return func(n-2) + func(n-1)

count = int(input('想要幾個菲波那切數?請輸入:\n'))

a = 1

while a <= count:

print(func(a), end=' ')

a += 1

結果:

想要幾個菲波那切數?請輸入:

101 2 3 5 8 13 21 34 55 89

其他方法(新增到列表,再輸出):

lst = [1, ]

def func(num, a=1, b=2):

if num < 2:

return

else:

func(num - 1, b, a + b)

func(5)

print(lst)

階乘 及 斐波那契數列

階乘 乙個正整數的階乘是所有小於及等於該數的正整數的積,並且0的階乘為1。例項學習 public class factorial test public static intfactorial int index else if index 1 else else 執行結果 720斐波那契數列 又稱...

python 斐波那契?

description 給出乙個數列的遞推公式,希望你能計算出該數列的第n個數。遞推公式如下 f n f n 1 f n 2 f n 3 其中,f 1 2,f 2 3,f 3 5.很熟悉吧,可它貌似真的不是斐波那契數列呢,你能計算出來嗎?input 輸入只有乙個正整數n n 4 output 輸出只...

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...