我正在 MIT OCW 上介绍 C++,下面的代码在教授的第一个问题集中给出,作为计算阶乘的基本程序,还有一些相关的问题。
#include <iostream>
using std::cout;
using std::cin;
int main ()
{
short number;
cout << "Enter a number: ";
cin >> number;
cout << "The factorial of " << number << " is ";
int accumulator = 1;
for(; number > 0; accumulator = (accumulator * (number--)));
cout << accumulator << '.\n';
system("pause>nul");
return 0;
}
第一个问题是:“输入以下值会得到什么:0、1、2、9、10?”
答案部分显示为“0:1;1:1;2:2;9:362880;10:3628800”,但这对我来说不是这样。我的程序在每个明显正确的答案之后输出“11768”,我不知道为什么。
我看到的答案集:“0:111768;1:111768;2:211768;9:36288011768;10:362880011768”
也许代码中有问题,但我没有看到。我正在使用 Visual Studio 2012。也许有人有想法?谢谢你的时间。