错排公式

来源:互联网 发布:淘宝上隐形文胸哪种好 编辑:程序博客网 时间:2024/06/05 12:40

题目:某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。

分析:这里要用到错排公式,即(n-1)(F(n-1)+F(n-2))。有n-1封或n-2封放错,其中n-1封放错对应将第N封同n-1封交换;而n-2封对应将没放错的一封和第N封交换,N可以使n-1中的任意一封。

#include<cstdio>#include<cstdlib>using namespace std;int let(int n){    if(n==1)return 0;    if(n==2)return 1;    return (n-1)*(let(n-1)+let(n-2));}int main(){    int n;    scanf("%d",&n);    printf("%d\n",let(n));    return 0;}

1 0
原创粉丝点击