從今天開始,堅持一天解決消化吸收一個經典算法問題
# 全錯排列問題的遞歸解法
def nolist(n):
if n==1:
return 0
elif n==2:
return 1
else:
return (n-1)*(nolist(n-1)+nolist(n-2))
print(nolist(int(input("請輸入元素個數"))))
#全錯排列問題的非遞歸解法
n=int(input('請輸入元素個數'))
ans=3
a=0
b=1
while 1:
if n==1:
print(a)
break
elif n==2:
print(b)
break
elif ans<=n:
z=(ans-1)*(a+b)
a=b
b=z
ans+=1
print(z,a,b,ans,"\n")
else:
print(z)
break