4日ほど前にpythonというプログラミング?を始めた者です。
lang
1def fact(n): 2 if n == 0: return 1 3 return n * fact(n - 1) 4print fact(5)
これに疑問をもつので質問させてください
これは5の階乗らしのです。5! = 54321で終わり
なるらしいですがひき数に5を指定すると
最初に 5 * fact(5-1)
fact(4)...fact(3),fact(2),fact(1)となり54321で、fact(0)のときにif n == 0: return1を返すので54321でなく54321*1になるないですか?
あってるかわからなかったのでreturn n * fact(n - 1)をreturn n + fact(n - 1)にしてみたら結果16になり。
5+4+3+2+1=15です
16になったのはやはり...1+1というようにもう一度+1されていたからですか?
サイトが正しいのか自分の考えであってるかわかりません
教えてください
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/02/05 16:22