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都装不了,请问谁知道用什么类型可以装得下?
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十进制位,自己模拟笔算