これをwhileループから再帰メソッドに変換するのに助けが必要ですか?どうすればよいですか?
while z <= len(list):
if z = len(list): #base case
return something
else:
#do something else
z += 1
これをwhileループから再帰メソッドに変換するのに助けが必要ですか?どうすればよいですか?
while z <= len(list):
if z = len(list): #base case
return something
else:
#do something else
z += 1
def func(my_list, z):
if z == len(my_list):
return something
else:
# do something else
return func(my_list, z+1)
z = someValue
print func(my_list, z)
list
変数名として使用しないでください。
z = 1
while z <=5:
if z == 5:
print 'base case'
else:
print 'repeated text'
z += 1
これは、次のように再帰コードに変換されます。あなたはこれに基づいてあなたのケースに取り組むことができます
def recursion(z):
assert z <= 5
if z == 5:
print 'base case'
else:
print 'repeated text'
recursion(z+1)
recursion(1)
whileループを使用して再帰関数を実装します---階乗----
(1)while条件に基づいてファクト関数を再帰的に呼び出します
(2)問題ステートメントに従ってifまたはネストされたifを追加できます
def fact(num):
while num>1:
return num*fact(num-1)
else:
return num
result = fact(3)
print(result)
6
condition = lambda n: n >= 3
repetition = lambda n: print(f'{n}: Repeating Line')
termination = lambda n: print(f'{n}: Terminal Line')
def recursive(n):
if condition(n):
repetition(n)
n = recursive(n-1)
else:
termination(n)
return n
def iterative(n):
while condition(n):
repetition(n)
n -= 1
termination(n)
return n
def main():
n = 4
print("Recursion Example")
result = recursive(n)
print(f'result = {result}')
print()
print("Iteration Example")
result = iterative(n)
print(f'result = {result}')
print()
main()
>>> Recursion Example
>>> 4: Repeating Line
>>> 3: Repeating Line
>>> 2: Terminal Line
>>> result = 2
>>>
>>> Iteration Example
>>> 4: Repeating Line
>>> 3: Repeating Line
>>> 2: Terminal Line
>>> result = 2