前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【面试智力题】1000!有几位数,为什么?

【面试智力题】1000!有几位数,为什么?

作者头像
用户9645905
发布2022-11-30 11:08:56
4340
发布2022-11-30 11:08:56
举报
文章被收录于专栏:Linux学习~

问题描述 1000!有几位数,为什么?

解答思路

设一个数为X,用科学计数法表示为X=a*10^b,其中1<a<10,b为整数,则X有1+b位数

  • 示例:

1995=1.995* 10^3,有1+3=4位数 56789=5.6789*10^4,有1+4=5位数。其中3,4是通过取对数的整数部分获得,lg(1995)的整数部分是3,lg(56789)的整数部分是4

求1000!有几位,此问题转化成求lg(1000!)+1的值 lg(1000!)=lg(1000*999…*1)=lg(1000)+lg(999)+…+lg(1)

代码语言:javascript
复制
#include <stdio.h>
#include <math.h>
int main()
{
    double sum = 0.0;
    for (int i = 1000; i >=1; i--)
    {
        sum += log10(i);
    }
    printf("%d\n", (int)sum+1);//2568
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档