[アルゴリズム]-再帰関数


1.再帰関数


📘 再帰とは、何かを定義するときに自分を参照することです.[ウィキペディア]
あるコンピュータ工学部の学生が有名な教授に聞いた.
「在貴ってどういう意味?」
「いいか.昔、ある山の頂上に、世の中のすべてのことをよく知っている仙人がいた.村の人たちは、その仙人にいろいろな質問をして、知恵を持って答えた.彼の答えの大部分は正しい」
しかしある日、一人の書生がその仙人に尋ねてきた.
「在貴ってどういう意味?」
「いいか.昔、ある山の頂上で、世界中の知識が......

2.コード実装


ディジット


60から0までのカウント機能を再帰関数で簡単に実現しましょう.
def count_down(number):
    if number < 0:         # 만약 숫자가 0보다 작다면, 빠져나가자!
        return

    print(number)          # number를 출력하고
    count_down(number - 1) # count_down 함수를 number - 1 인자를 주고 다시 호출한다!

count_down(60)

事実の


再帰関数に関連する代表的な問題ファクトリ問題をコードで実現する.
  • 工場は、1から任意の数の整数nまでの整数を乗算することを意味する.
  • 例)
    3! 銀3 2 1=6、
    4! 4 3 2 1=4 3です!=24
    def factorial(n):
        if n == 1:
            return 1
        return n * factorial(n - 1)
    
    print(factorial(60))
    

    けんさ


    回文の意味はまっすぐで、逆さまですが、同じ単語や文です.
  • トマト
  • オーディオ
  • アジア
  • 日曜日
  • input = "abcba"
    
    def is_palindrome(string):
        if len(string) <= 1:
            return True
        if string[0] != string[-1]:
            return False
        return is_palindrome(string[1:-1])
    
    print(is_palindrome(input))