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

简介: 1000!有几位数,为什么?

问题描述


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)

#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;
}
相关文章
|
6月前
【一刷《剑指Offer》】面试题 12:打印 1 到最大的 n 位数
【一刷《剑指Offer》】面试题 12:打印 1 到最大的 n 位数
|
6月前
剑指Offer LeetCode 面试题17. 打印从1到最大的n位数
剑指Offer LeetCode 面试题17. 打印从1到最大的n位数
36 0
技术面试常见智力题
了解技术面试常见智力题。
257 0
|
存储
剑指Offer - 面试题17:打印从1到最大的n位数
剑指Offer - 面试题17:打印从1到最大的n位数
76 0
|
测试技术
软件测试面试题:打印出100-999所有的“水仙花数“,所谓“水仙花数“是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数“,因为153=1的三次方+5的三次方+3的三次方。
软件测试面试题:打印出100-999所有的“水仙花数“,所谓“水仙花数“是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数“,因为153=1的三次方+5的三次方+3的三次方。
301 0
|
算法
面试题:从1, 2, 3, 4, 5五个数字中能找出多少个每位数字都不同的三位数?
前言 前几天看到了一道简单的面试题,从5个数字中找出所有每位数字都不同的三位数的数量并且一一输出。
1727 0
|
算法
面试2 递归的算法求1,1,2,3,5,8.......的第30位数是多少,然后求这些数的和.
递归的算法求1,1,2,3,5,8.......的第30位数是多少,然后求这些数的和. static void Main(string[] args) { //递归的算法求1,1,2,3,5,8.
1028 0
面试过程中遇到的智力题
1、滴滴三面真题 考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。
1666 0