简单的 C++ 阶乘程序
问题描述:
作为作业,我需要一个程序来读取一个非负整数并计算并打印其阶乘.到目前为止,我编写了代码,但如果我尝试输入 50!结果为 0.它适用于较小的数字.任何帮助将不胜感激.
as homework I need a program that reads a nonnegative integer and computes and prints its factorial. So far I wrote the code but if I try to input 50! the result is 0. It works with smaller numbers. Any help would be much appreciated.
#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!
is 304140932017133780436126081660647688437764156896051200000000000000000000000由于整数溢出,结果为0.
50!
is 30414093201713378043612608166064768844377641568960512000000000000
, far too large for an int. Due to integer overflow, the result is 0.