这道题的答案有错误

大师  •  16天前


此题的标准程序存在问题,很可能是使用了int,结果溢出了,所以第五个检测点是负数(这是不可能的情况) 下面给出能过此题的答案(真正的做法请把f的int改为long)

include

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;

}


评论:

请先登录,才能进行评论