listをreturnさせるのがうまくいきません。
Python3で質問です。
f(0)=1, f(1)=1, f(n)=f(n-1)+f(n-2), n>1と言う条件でnが1から20までの再帰を行いたいのですが
def f(n):
if n == 0 or n == 1:
return 1
else:
return f(n-1)+f(n-2)
def main():
for i in range(11):
print(f(i))
main()
帰ってくる値は
1
1
2
3
5
8
13
21
34
55
89
もともとのコードはこうなのですが、これをreturn時にlistに入れてreturnしたいのですがうまくいきません
def f(n):
L = []
ans = []
if n == 0 or n == 1:
ans = 1
L.append(ans)
return L
else:
ans = f(n-1)+f(n-2)
L.append(ans)
return L
def main():
for i in range(11):
print(f(i))
main()
このように書くと上のような値が帰ってきません。
どのようにすればlistに入れてreturnさせてもうまくいきますか?
お知恵を貸してください