C语言中怎么求一个数的阶乘的位数

 我来答
zyh1141298056
2012-04-14 · TA获得超过1308个赞
知道小有建树答主
回答量:500
采纳率:100%
帮助的人:597万
展开全部
求位数的话把这个数取10的对数就行了。至于求阶乘的话,如果n不是很大可以直接来算,当n比较大的时候可以用斯特林公式来求
水清月香
2012-04-14 · 超过22用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:66.1万
展开全部
c语言程序实现代码如下:
#include<stdio.h>
void main()
{
int tmp=1;
int i;
int j=0;//输入数值阶乘的位数

int n;//输入的数值
scanf('%d',&n);

for(i=1;i<=n;i++)
{
tmp*=i;
}

while(tmp>0)
{
tmp=tmp/10;
j++;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
两个美丽的神话
2012-04-14 · 超过14用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:42.2万
展开全部
求阶乘的代码你在网上应该可以搜索得到,至于求一个数的阶乘的位数,可以用如下代码实现
#include"stdio.h"
#include"math.h"
void main()
{
int i,n,sum;
scanf("%d",&sum); //sum为一个数的阶乘
for(i=1;;i++)
{
n=pow(10,i);
if(sum<n)
{
printf("%d的位数是%d\n",sum,i);
break;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2018-04-05
展开全部
#include<stdio.h>
#include<math.h>
int main()
{
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("%d\n",(int)( 0.5*log10(2*3.1415926*n) + n*log10(n/2.7182818284) )+1);
}
return 0;
}斯特林公式
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式