n=int(input())
f=[0]*50
f[1]=0
f[2]=1
f[3]=3
for i in range(3,n+1):
f[i]=(i-1)*(f[i-1]+f[i-2])
print(f[n])
#其中i-1是除了其对应信封的方案数,其中分两种情况第一种:第i号封信放入n号信封中,但第n封信没有放入i的信封中,就会有f[i-1]种情况(i-1是i放入信封中后还有i-1封);第二种情况:第n封信放入i的信封中,及还有i-2封信。再利用递归。
n=int(input())
f=[0]*50
f[1]=0
f[2]=1
f[3]=3
for i in range(3,n+1):
f[i]=(i-1)*(f[i-1]+f[i-2])
print(f[n])
#其中i-1是除了其对应信封的方案数,其中分两种情况第一种:第i号封信放入n号信封中,但第n封信没有放入i的信封中,就会有f[i-1]种情况(i-1是i放入信封中后还有i-1封);第二种情况:第n封信放入i的信封中,及还有i-2封信。再利用递归。