(一) 寫乙個函式,接收乙個引數,用來返回這個函式的階乘並輸出
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 ...