100!用什么类型存储?

来源:百度知道 编辑:UC知道 时间:2024/05/25 15:10:21
我用c写个100的阶乘,但是不能正确输出,以下为代码:

main()
{
int i;
long int s=1;
for(i=1;i <=100;)

{s=s*i;
i++;
}
printf("%ld",s);
getch();

}
输出结果为0
我看书上说int,long和unsigned long都装不了,请问谁知道用什么类型可以装得下?

任何基本类型都装不下
只能自己实现大数字类来实现

long double 加倍在加倍]

# include<stdio.h>
void main() {
int i;
long double s=1; //这里修改
for(i=1;i<=100;i++)
s=s*i;
printf("%.2lf",s); //这里也修改
getchar();
}

测试过了 能算到 170!
希望能帮到你 呵呵

用double
double能达到10的32次方位数
long double

char[1000];
每个字节保存1十进制位,自己模拟笔算