python再帰応用フィボナッチ数列

1331 ワード

」「フィボナッチ数列1 1 2 3 8 13...
カエルは階段を1つあるいは2つ登って、nつの階段まで跳んで、何種類の跳び方があります
1 2 3 5 8
関数パラメータの伝達問題:パラメータが基本タイプの場合:値の伝達に属し、関数の内部で操作し、結果に影響しません.
         
          ,       ,       

“”"def func(n): if n == 1 or n == 2: return 1 else: return func(n-1)+func(n-2)
def func1(n):
if n == 1 or n == 2:
return 1
else:
return func1(n-1) + func1(n-2)
def func2(n):
list1 = [1,1]
if n == 1 or n == 2:
return 1
else:
for i in range(3,n+1):
list1.append(list1[-2]+list1[-1])
return list1[n-1]
def func3(n):
if n == 1 or n == 2:
return 1
else:
i = 3
a,b = 1,1
while i <= n:
c = a + b
a,b = b,c
i += 1
return c
print(func1(5))
print(func2(5))
print(func3(5))
print(func3(100))
print(func2(100))
print(func1(100))
関数のパラメータの使用に関する質問
a = 10
# def func2(a):
# a += 10
def func2(b):
b += 10
func2(a)
print(a) # 10, 20
a,b = 10, 20
def swap(x,y):
x,y = y,x
print(f’交換前:a={a}b={b}’)#10,20
swap(a,b)
print(f’交換後:a={a}b={b}’)#10,20
list1 = [1,2]
def swap(list2):
list2[0],list2[1] = list2[1],list2[0]
print(f’交換前:{list 1}’)#[1,2]
swap(list1)
print(f’交換後:{list 1}’)#[]