Pythonコードのテスト-再帰

6469 ワード

復帰する
『プログラマーハイスコアキット』
<工場>
def fact(n):
  if(n<=1):
    return 1
  else:
    return n*fact(n-1)
#
num=int(input())
result=fact(num)
print(result)
<解説>
工場5!5 4 3...1で停止するため、再帰関数の終了条件で1未満を宣言します.そうでない場合は積を返します.
<フィボナッチ数5>
def fibo(n):
  if(n==0):
    return 0;
  elif(n==1):
    return 1
  else:
    return fibo(n-1)+fibo(n-2)
num=int(input())
print(fibo(num))
<解説>
「現在のフィボナッチ数は前フィボナッチ数と前フィボナッチ数である」という論理はそのままf(n)=f(n-1)+f(-2)に移行し、return f(n-1)+f(n-2)となる.
<例外の場合>0番面数と1番面数は既知の場合から始まるので、n=0,n=1の条件を予め与えなければならない.
<雹の木>
def ob(num):
  if(num==1):
    print(int(num))
    return 
  elif(num%2==0):
    print(int(num))
    ob(num/2)
  else:
    print(int(num))
    ob(3*num+1)
#
num=int(input())
ob(num)
<解説>
今の公式はいつも本当の仮定の下で、それぞれ更に貴重です.最後にnum=1であれば、すぐに終わります!