# 信封问题
## 题目描述
某人写了 $n$ 封信和 $n$ 个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。
## 输入格式
一个信封数 $n$,保证 $n \le 20$。
## 输出格式
一个整数,代表有多少种情况。
## 样例 #1
### 样例输入 #1
```
2
```
### 样例输出 #1
```
1
```
## 样例 #2
### 样例输入 #2
```
3
```
### 样例输出 #2
```
2
```
## 提示
对于 $100 \%$ 的数据,$1 \le n \le 20$。
#include<bits/stdc++.h>
using namespace std;
int n;
long long a[101]={0,0,1,2};
bool b=true;
int main()
{
cin>>n;
for(int i=4;i<=100;i++)
{
a[i]=a[i-1]*i+(b?1:-1);
b=!b;
}
cout<<a[n];
return 0;
}