输入一个整数n,输出n的阶乘
输入描述:
一个整数n(1<=n<=20)
输出描述:
n的阶乘
输入例子:
3
输出例子:
6
#include
using namespace std;
int main()
{
int n;
cin>>n;
if(n>=1&&n<=20)
{
while(n-1>0)
{
n=n*n-1;
}
cout<<n<<endl;
}
}
请问这样写的错误在哪?
为何有很多人用long型
谢谢!
int main()
{
long n,Sum = 1;
cin>>n;
if(n>=1&&n<=20)
{
for (int i = 1;i <= n;i ++)
{
Sum *= i;
}
cout<<Sum<<endl;
}
}
数据太大int类型容易产生溢出
不同数据类型表达数据长度不同
因为long类型可以保存的数据范围更大防止溢出