上一题中,如果主函数为如下的程序,则最后的排列数是多少个?( )。
int main() {
int a[5] = {1, 2, 3, 4, 5};
pailie(0, 5, a);
return 0;
}排列组合问题:先判断是否考虑顺序(排列P vs 组合C),再确定是否允许重复。乘法原理分步,加法原理分类。
区分排列(考虑顺序,$P(n,m)$)和组合(不考虑顺序,$C(n,m)$)。注意特殊元素优先处理、正难则反等计数技巧。
【考点】全排列生成|阶乘计算|递归回溯
GESP八级C++全排列考点,对应递归回溯核心能力。命题人放这道题,就是卡住那些只会背公式、不懂回溯框架的考生——他们能算5!,但说不清pailie(0,5,a)到底在干什么。