求满足条件n!

时间:2022-11-25 15:11:46

我们先来看个满足n!<100的

#include <stdio.h>
main()
{
int i,n=1;
for (i=2;n<=100;i++)
{
n=n*i;
}
printf("%d",i-2); //为什么是-2,因为当循环时i为4,满足条件,i自增为5,计算出n*5,i在自增为6,n不小于100,则退出循环,真正满足条件的数是4

}
n!<40000最大数,
#include<stdio.h>
main()
{
double n=1; /*注意,此处n不能为int型。*/
int i;
for (i=2;n<40000;i++)
n*=i; /*n用来保存i!的值。*/
printf("%8d",i-2);
}
疑问:貌似用int也可以,为什么会用double,难道是double范围大?