これは宿題の問題です。再帰関数を取得しようとしています:
def problem_a(n):
answer.append(n)
if n == 1:
return answer
elif n % 2 == 0:
answer.append(n/2)
else :
answer.append(n*3 + 1)
problem_a(n*3 + 1)
answer
リストとして定義されていないため、このコードは明らかに機能しません。ループでも機能しますが、再帰関数を作成したいと思います。リストを入力として使用することもできますが、もっとエレガントなものがあるのではないかと思います。
problem_a(7)
出力として与える必要があります:
[7, 22, 11, 34, 17, 52, 26, 13, 40 , 20, 10 ,5 ,16, 8, 4, 2, 1]