あくまで備忘録なんで雑に記録します
①1〜10までの合計を再帰関数で
シンプルに書けるためところどころで使われているけれど、自分で書こうと思うと意識しないと難しいと感じました。
公式として def func(x): if 終了条件: return x 〜何かの処理を行う〜 func(ちょっとづつ小さくなるx)
1〜10までの合計をwhileで
def sum(x):
total = 0
while x > 0: #xが0になるまで続ける
total += x #totalにxを加える
x -= 1 #xが1づつ小さくなる
return total
#55
これも一応再帰的な書き方なのかもしれません
これは頭では理解しやすいです
def sum(x):
if x <= 0:
return x
else:
return sum(x-1) + x
これが理解しづらいです・・・
そもそも関数とは、
こういう感じなんですが、再帰関数ですと、
これって数列でいうところの・・・
だから、コードを再帰関数化するのは意識的にしていかないと勘所が働かないのでしょうね
②10進数をn進数にする関数を再帰関数で
def base_10_to_n(d, n):
if d // n == 0: #剰余の商が0になれば終了
return str(d % n) #剰余の余をリターン
else:
return base_10_to_n(d//n, n) + str(d % n) #剰余の余を「文字列」として加えていく
#base_10_to_n(11, 2)
#1011
コメント