您的位置:首页 > 其它

P1595 信封问题

2018-03-28 20:19 302 查看
原文链接:P1595 信封问题
原文:

题目描述

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

输入输出格式

输入格式:一个信封数n(n<=20)
输出格式:一个整数,代表有多少种情况。输入输出样例输入样例#1: 复制
2
输出样例#1: 复制
1
输入样例#2: 复制
3
输出样例#2: 复制
2


试题分析:典型的全错排,使用固定公式:
D(n) = (n-1) [D(n-2) + D(n-1)]特殊地,D(1) = 0, D(2) = 1.
代码:#include<iostream>
using namespace std;
int 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;
cin>>n;

cout<<f(n);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: