再帰呼び出し
9545 ワード
📌 再帰呼び出し
📌 再帰呼び出しの一般的な形式
💡 形態。
def function(입력):
if 입력 > 일정값: # 입력이 일정 값 이상이면
return function(입력 - 1) # 입력보다 작은 값
else:
return 특정값 # 재귀 호출 종료
💡 形態2(形態1では少し順序を変える)
def function(입력):
if 입력 <= 일정값: # 입력이 일정 값보다 작으면
return 특정값 # 재귀 호출 종료
function(입력보다 작은 값)
return 결과값
📌 再帰呼び出しの例として理解
n!:1×2×...×nn!:1×2×...×nn!:1×2×...×n:再帰呼び出しによるファクトリ関数の実装
1回""形状を実装
def factorial(num):
if num > 1:
return num * factorial(num - 1)
else:
return num
2回""形状を実装
def factorial(num):
if num <= 1:
return num
return_value = num * factorial(num - 1)
return return_value
📌 再帰呼び出しとスタック
def function(입력):
if 입력 > 일정값: # 입력이 일정 값 이상이면
return function(입력 - 1) # 입력보다 작은 값
else:
return 특정값 # 재귀 호출 종료
def function(입력):
if 입력 <= 일정값: # 입력이 일정 값보다 작으면
return 특정값 # 재귀 호출 종료
function(입력보다 작은 값)
return 결과값
n!:1×2×...×nn!:1×2×...×nn!:1×2×...×n:再帰呼び出しによるファクトリ関数の実装
1回""形状を実装
def factorial(num):
if num > 1:
return num * factorial(num - 1)
else:
return num
2回""形状を実装
def factorial(num):
if num <= 1:
return num
return_value = num * factorial(num - 1)
return return_value
📌 再帰呼び出しとスタック
📌 複数の再帰的な使い方を使う
1)1からnumまでの積を出力する再帰関数。
def multiple(num):
if num <= 1:
return num
return num * multiple(num - 1)
2)数値を含むリストの和を返す再帰関数
data = [1, 3, 5, 2, 6, 7]
def sum_list(data):
if len(data) <= 1:
return data[0]
return data[0] + sum_list(data[1:])
3)回文(回文)を判別する関数
回文def palindrome(string):
if len(string) <= 1:
return True
if string[0] == string[-1]:
return palindrome(string[1:-1])
else:
return False
4)1,2,3の組み合わせだけで整数nを作成できる場合に返される関数。
f(n)がf(n-1)+f(n-2)+f(n-3)に等しいモードを見つけろ!def func(data):
if data == 1:
return 1
elif data == 2:
return 2
elif data == 3:
return 4
return func(data -1) + func(data - 2) + func(data - 3)
Reference
この問題について(再帰呼び出し), 我々は、より多くの情報をここで見つけました
https://velog.io/@eunseokim/재귀-용법-recursive-call
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
def multiple(num):
if num <= 1:
return num
return num * multiple(num - 1)
data = [1, 3, 5, 2, 6, 7]
def sum_list(data):
if len(data) <= 1:
return data[0]
return data[0] + sum_list(data[1:])
def palindrome(string):
if len(string) <= 1:
return True
if string[0] == string[-1]:
return palindrome(string[1:-1])
else:
return False
def func(data):
if data == 1:
return 1
elif data == 2:
return 2
elif data == 3:
return 4
return func(data -1) + func(data - 2) + func(data - 3)
Reference
この問題について(再帰呼び出し), 我々は、より多くの情報をここで見つけました https://velog.io/@eunseokim/재귀-용법-recursive-callテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol