计算n的阶乘,sum应该定义为什么类型??

来源:百度知道 编辑:UC知道 时间:2024/05/26 05:31:48
如果定义成int 我试着输入50 结果是0
sum应该定义为什么类型??
for (int i = 1; i <= n; i++)
{
sum = sum * i;
}

应该定义成什么样的类型呢

没用的,即时是double类型也就32个位,没有任何一种语言提供任何一种数据类型能够让你计算大数的阶乘,要算的话可以用数组,或者结构体建立线性表。

得看你n有多大
如果是2
那么int也可以
自己看看int ,long int, float,double的范围

至少是long,如果真的要算就用double

若要用高精度数,要自己写

LONG也不可能存放50!
要计算这么大的数字,要自己设计数据类型,设计算法。

至少是long

__int64
64位的整形。新的VC支持。