题目链接:https://vjudge.net/problem/HDU-1465
错排公式
1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <iostream> 5 #include <algorithm> 6 #include <string> 7 #include <cstdlib> 8 9 using namespace std; 10 11 long long f(long long n) 12 { 13 if(n==1) return 0; 14 if(n==2) return 1; 15 if(n==3) return 2; 16 return (n-1)*(f(n-1)+f(n-2)); 17 } 18 19 int main() 20 { 21 long long n; 22 while(~scanf("%lld",&n)) 23 printf("%lld\n",f(n)); 24 return 0; 25 }