下面的 C++ 代码片段用于计算阶乘。请在横线处填入( ),实现正确的阶乘计算。
int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
________________________ // 在此处填入代码
}
}位运算:&(与)、|(或)、^(异或)、~(取反)、<<(左移)、>>(右移)。异或性质:a^a=0,a^0=a。
区分逻辑运算(&&,||,!)和位运算(&,|,~,!)。左移右移注意符号位的处理(算术右移vs逻辑右移)。负数的位运算要小心。
【考点】递归|递推关系|返回值逻辑
GESP五级递归模块|基础递归结构|返回值逻辑。命题人专门卡"递归三要素"里最容易被忽略的返回值设计——考生知道要递归调用,却总忘记:递归是拆解问题,不是原地打转。