永发信息网

pascal信封问题

答案:2  悬赏:30  手机版
解决时间 2021-04-26 07:13

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

求高手回答 n=1~10的答案

最佳答案

var
n,ans:integer;
a:array[1..10]of integer;
yes:array[1..10]of boolean;


procedure dfs(deep:integer);
var
i,j:integer;
begin
if deep>n then ans:=ans+1
else
for i:=1 to n do
if (yes[i])and(i<>deep) then
begin
yes[i]:=false;
a[deep]:=i;
dfs(deep+1);
yes[i]:=true;
end;
end;


begin
fillchar(yes,sizeof(yes),true);
readln(n);
dfs(1);
writeln(ans);
readln
end.


这个是用深搜,每次枚举一种情况


1-10分别是0,1,2,9,44,265,1854,14833,133496,1334961


友情团队 编程之道 提供的公式可以用的,不过考场上如果想不到公式,就要用深搜做了

全部回答
错排问题,有个递推公式可以用: f(1) = 0 f(2) = 1 f(n) = (n-1)(f(n-2)+f(n-1)) 代码: function cc(n:integer):cardinal; var r:cardinal; begin if(n=1)or(n=2)then r:=n-1 else r:=(n-1)*(cc(n-2)+cc(n-1)); cc:=r; end; var n:integer; begin readln(n); writeln(cc(n)); readln; end.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我翻了个50级的粉手镯。为什么不能摆摊卖啊?
NBA篮球的评价
身体不适怎么办??
双眼皮与单眼皮有什么好处呢?
苏格拉底咖啡主题酒店地址有知道的么?有点事
刮风的意思是什么,刮风时,旗在风中什么烟柱
多久才能再养狗?
临安已经属于杭州市了吗?
为什么我的QQ空间里的个人中心不能显示出好友
布鲁斯鲍文防守有多厉害
02966778855的号码归属地
我家的电脑网线是一条线二台机子用的,我的机
写烦恼形象的句子,写人物烦恼时的外在形象,片
农行网上银行的证书
富强街/健康路(路口)地址有知道的么?有点事
推荐资讯
怎么报名超级演说家。要真实有效的 10分
辽3DNF碧影
想妈妈了怎么办??
DAEMON Tools 4.08~4.10
9月1日还有连续登陆的任务吗
初二学习不好怎样让初三赶上?
QQ牧场为什么不稳定呢
滚筒洗衣机进水口在哪,小天鹅洗衣机排水阀里
无花果当真不开花吗
什么样的饮食习惯对学习有帮助
求炫舞自定义字做个爱字
网络游戏 武林外传 这款游戏2010年最近出新资
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?