double f( long n )
{
register int i;
register double sum = 1.0;
for( int i = 1 ; i <= n ; i++ )
{
sum = sum*i;
}
return sum;
}
int main()
{
int i,n;
cin >> n;
for( i = 1;i<=n;i++)
cout << i << "!= " <<f(i) << endl;
}
为什么能求到170的阶乘 为什么可以存这么大的数 然而把register去掉也可以 就算是long long int 也就2^64-1 的范围 但是运行显示最大的170!后面有300多个0 这些数据是怎么存储的 或者它存在哪 为什么把register double 改成 register int 结果就截然不同 求大佬指点。