用C语言编写一个程序:从键盘上输入一个数字m,输出n的值,n满足条件:n!<=m<=(n+1)!

2024-11-15 17:17:22
推荐回答(1个)
回答(1):

#include
double fun(int n) /*考虑到有些数的阶乘值很大,可能会突破long的范围,设为double类型*/
{
if(n==0) return 1;
else return n*fun(n-1);
}

int main(int argc, char *argv[])
{
int m,n;
printf("请输入一个数字:");
scanf("%d",&m);
printf("输出:\n");
for(n=1;n<=m;n++)
if ( fun(n)<=m && m<=fun(n+1))
{ printf("%d!=%.0f\n",n,fun(n)); /*%.0f输出阶乘,double类型不输出小数点*/
printf("%d!=%.0f\n",n+1,fun(n+1));
printf("%d符合条件\n",n);
}
printf("\n");
return 0;
}