#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include<string>
using namespace std;
long long c(int n, int m){
int a = 1;
for (int i = 1; i <= m; i++)
{
a = a*(n - i + 1);
a /= i;
}
return a;
}
void main()
{
int n;
long long a[26];
a[0] = 0;
a[1] = 0;
a[2] = 1;
for (int i = 3; i <= 25; i++)
a[i] = (a[i - 1] + a[i - 2])*(i - 1);
while (cin >> n)
{
if (n == 0)
return;
long long sum = 1;
for (int i = 1; i <= n / 2; i++)
sum += c(n, i)*a[i];
cout << sum << endl;
}
}
杭电2068 错排加组合
最新推荐文章于 2019-02-01 20:16:07 发布