旅行 转眼毕业了,曾经朝夕相处的同学们不得不都各奔东西,大家都去了不同的城市开始新的生活。在各自城市居住了一段时间后,他们都感到了一些厌倦,想去看看其他人的生活究竟如何,于是他们都选择到另一个同学所在城市去旅游,并且希望旅游的城市各不相同,他们想知道有多少种不同的方案,可是数量实在太多了,他们无法计算出来,你能帮助他们吗。 时间限制:10000 内存限制:131072 输入 一个正整数n(n<200),表示人数。 输出 一个数,表示有多少不同的方案。 样例输入 3 样例输出 2 提示 有如下两种方案: 同学1去同学2的城市,同学2去同学3的城市,同学3去同学1的城市; 同学1去同学3的城市,同学3去同学2的城市,同学2去同学1的城市。
正确答案:参考程序(C++):错排数D(n)。每人去另一同学城市且各不相同=错排。D(n)=(n-1)*(D(n-1)+D(n-2)),D(1)=0,D(2)=1。n=3→2。核心:错排递推。
试卷来源:202303 青少年等级考试C/C++真题八级