内存:128  时间:1

题目描述

人非圣贤孰能无过,小千却经常犯错,在每次做完一道acm编程题后小千便会习惯的写一篇博客来巩固知识点,每当写完博文后,总会有些人来问小千各种问题,可是这次小千却把所有的回复都回复错人了(全部都回复错人啦),小千却不以为意,“一共就那么几种错误的情况嘛”,小艾跟他说,“你为什么不编程算算一共会有多少种情况呢?也会你会吃惊的”,小千却执意不信。

现在请你帮帮可怜的小千 告诉他一共会有多少种错误的方式。

输入

输入数据包含多个多个测试实例,每个测试实例占用一行,每行包含一个正整数n(1<n<=20),n表示小千回复了n个人。

输出

对于每行输入请输出可能的错误方式的数量,每个实例的输出占用一行。

样例输入

2
4

样例输出

1
9

提示

注意当回复的人数超过10的时候结果可能会变得很大哦

代码如下

#include <iostream>
using namespace std;
long long f(int n)
{
    if(n==1)
        return 0;
    if(n==2)
        return 1;
    return (n-1)*(f(n-1)+f(n-2));
}
int main()
{
    int n;
    while(cin>>n)
        cout<<f(n)<<endl;
    return 0;
}

代码来源于互联网,仅供参考!