大师 • 16天前
此题的标准程序存在问题,很可能是使用了int,结果溢出了,所以第五个检测点是负数(这是不可能的情况) 下面给出能过此题的答案(真正的做法请把f的int改为long)
using namespace std; const int N = 20; int f[N];
int main() {
int n;
cin >> n;
f[1] = 0, f[2] = 1;
for (int i = 3; i <= n; i++)
f[i] = (i - 1) * (f[i - 1] + f[i - 2]);
cout << f[n];
return 0;
}
评论:
请先登录,才能进行评论