代码如下:
#include<iostream>
using namespace std;
int set(int i)
{
int j;
if (i == 1 || i == 2)
j = i - 1;
if (i >= 3)
j = (i - 1) * (set(i - 1) + set(i - 2));
return j;
}
int main()
{
int n;
cout << "请输入学生数:" << endl;
cin >> n;
cout << "共有" << set(n) << "种座位方案";
return 0;
}
解释如下:
int set(int i)
:
- 定义了一个名为 set 的函数,它接受一个整数参数
i
,并返回一个整数。 - 在函数内部声明了一个局部变量
j
,用于存储计算结果。 if (i == 1 || i == 2)
:如果i
等于 1 或 2,那么座位方案数为i - 1
。这是递归的边界条件。if (i >= 3)
:当i >= 3
时,函数