递归递推 H (全错排列)

来源:互联网 发布:淘宝客服主管工作职责 编辑:程序博客网 时间:2024/04/29 01:28

H 巴蜀之危

已知n封书信,每封书信都投错了烽火台,居然没有一封是对的,求有多少种情况。

这是一个全错位排列,想了好久没有想出来来做法,但是能很明显感觉出这个问题是个数学问题,一百度就出来一个 错排公式,直接就可以解了,

公式为 D(n) = (n-1) [D(n-2) + D(n-1)];

代码如下:

#include<bits/stdc++.h>using namespace std;int main(){int n,i,j;long long int f[21];f[1]=0;f[2]=1;f[3]=2;for(i=4;i<21;i++)f[i]=(i-1)*(f[i-1]+f[i-2]);while(cin>>n)cout<<f[n]<<endl;return 0;}

0 0
原创粉丝点击