【发布时间】:2015-07-27 16:29:04
【问题描述】:
作为作业,我需要一个程序来读取一个非负整数并计算和打印它的阶乘。 到目前为止,我编写了代码,但如果我尝试输入 50!结果为 0。它适用于较小的数字。任何帮助将不胜感激。
#include <iostream>
using namespace std;
int main()
{
int counter = 1;
int number;
cout << "Please enter a number: ";
cin >> number;
int factorial = number;
while (counter != number)
{
factorial = factorial * (number - counter);
counter++;
}
cout << "The factorial of " << number << "! is: " << factorial << endl;
return 0;
}
【问题讨论】:
-
50的结果应该是什么?您的作业需要能够计算出阶乘的最大数字是多少? -
int的最大值是INT_MAX,通常略高于 20 亿(在具有 32 位int的系统上,这几乎是所有普通系统)。 -
它没有说具体的数字。我必须使用 while 语句和到目前为止我学到的变量类型:int、double/float 或 bool。
标签: c++ while-loop integer factorial