アルゴリズム


再帰的な使い方


再帰呼び出し


再帰的な使い方は簡単に言えば工場化です.関数の戻り値は関数です.
5! = 5 x 4 x 3 x 2 x 1
6! = 6 x 5 x 3 x 2 x 1 = 6 x 5! = 6 x 5 x 4!
n! = n x (n-1) x (n-2) x (n-3)! = n x (n-1)!
これをコードで次のように表現します.
def reCal(num):
	if num <= 1:
    	return 1
    return num * reCal(num-1)	
このように関数に戻る関数は再帰的な使い方であり,各関数はスタックのように積み重ねられ,順次値を返すと計算が完了する.

スタックのように戻り値をスタックする場合は、スタック順に演算して戻ります.

再帰的用法を用いた返信チェック


再帰的な使用法を使用して返信チェックを行う例を作成します(返信逆読みも同じです:スイス雁)
def checkRev(data):
    if len(data) <= 1:
        return True
    if data[0] == data[-1]:
        return checkRev(data[1:-1])
    else:
        return False

再帰的な使い方のコードには似たようなパターンがあります。

def reCal(num):
	if num <= 1:
    	return 1
    return num * reCal(num-1)