题意

  • 长为n的排列,第i为不能放i,求解方案数

思路

  • 典型的错排问题
  • c++得写高精度

代码

n=int(input())
f=[0,0,1]
for i in range(3,n+1):
    f.append((i-1)*(f[i-1]+f[i-2]))
print(f[n])