`
victor-yang
  • 浏览: 19457 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

求10的7次方阶乘的位数

 
阅读更多

即使找到最先进的计算大数阶乘的算法, 
若完全计算10的7次阶乘,然后统计其位数,也需要几十分钟才行。 
所以不可行,况且题目只需要求其位数。

那该怎么计算呢?非常的简单,其实是纯粹的数学问题。 
现由斯特林[striling]公式可得: 
lnN!=NlnN-N+0.5ln(2N*pi)

而10的7次方阶乘的位数等于: 
log10(N!)取整后加1 
log10(N!)=lnN!/ln(10)

所以整个结果用c描述:




#include<stdio.h> 
#include<math.h> 
#define PI 3.14159265 
#define N 10000000 
int main(){ 
    int len; 

    len=ceil((N*log(N)-N+log(2*N*PI)/2)/log(10));
    //ceil求上界,即不小于某值的最小整数 
    //log在c语言里面是自然对数 
    printf("%d\n",len); 
    return 0;
} 

 



len=65657060

1
3
分享到:
评论

相关推荐

    matlab编程求1000的阶乘

    例如,对于M=999,其阶乘结果的最低位在10的-3次方位置,所以`weishu`被设置为3。 接下来,我们进入主要的计算循环。对于`i`从1到`M`,对`A`数组的每一位进行逐位乘法。之后进行逐位加法和移位操作。这里用两个嵌套...

    c# 阶乘完整代码

    功能: 本程序实现的是大数的阶乘,...=10的m次方,数组的位数即为大 于m的最小整数,数组的位数确定后,初始化数组令数组的第一个空间的 值为1,其他的均为0,将所得的结果一位一位的存进数组,倒序输出所 得的结果。

    大数阶乘 双向链表

    2. **初始化大数为1**:因为任何数的0次方都是1,所以我们的初始链表只需要一个节点,其值为1,表示大数阶乘的初始值。 3. **乘法算法**:我们需要设计一个算法来实现两个链表表示的大数相乘。可以采用类似于笔算...

    大数计算器

    可以计算无限位数的加减乘除次方阶乘的计算器,可以混合运算

    C趣味程序100道

    C/c++趣味程序百例(献给C/C++初学者) 1.绘制余弦曲线 2.... 3.... 4.... 5.求最大数 6.高次方数的尾数 ...求具有abcd=(ab+cd)2性质的四位数 30.求素数 31.歌德巴赫猜想 32.可逆素数 33.回文素数

    C++ 程序设计题库

    6.高次方数的尾数 7 7.阶乘尾数零的个数 8 8.借书方案知多少 9 9.杨辉三角形 9 10.数制转换 11 11.打鱼还是晒网 12 12.抓交通肇事犯 14 13.该存多少钱 14 14.怎样存钱利最大 15 15.捕鱼和分鱼 17 16.出售金鱼 18 17....

    C语言程序设计100题精解

    高次方数的尾数 7.阶乘尾数零的个数 8.借书方案知多少 9.杨辉三角形 10.数制转换 11.打鱼还是晒网 12.抓交通肇事犯 13.该存多少钱 14.怎样存钱利最大 15.捕鱼和分鱼 16.出售金鱼 17.平分七筐鱼 18.有限5位数 19.8除...

    C/C++经典实用趣味程序设计编程例子精解(DOC)

    高次方数的尾数 7.阶乘尾数零的个数 8.借书方案知多少 9.杨辉三角形 10.数值转换 11.打鱼还是晒网 12.抓交通肇事犯 13.该存多少钱 14.怎样存钱利最大 15.捕鱼和分鱼 16.出售...

    专升本C++复习题.pdf

    3. **求整数位数并逆序输出**:需要计算数字的位数,可以利用对10取余的操作,然后再逆序输出。 4. **同构数**:同构数是出现在自己平方数右边的数。可以遍历1到99,检查每个数是否满足同构条件。 5. **水仙花数**...

    win7计算器win7计算器win7计算器win7计算器

    《Windows 7 计算器:功能解析与深入探索》 Windows 7 计算器是微软操作系统中内置的一款实用工具,它不仅提供基础的四则运算,还具备丰富的科学计算功能,对于日常计算和学习有着极大的帮助。下面,我们将详细解析...

    浙大c程题库答案

    - **知识点**:数字拆解,通过模运算和除法运算来提取整数的个位、十位和百位数字,如 `digit1 = n % 10` 表示个位数,`digit2 = (n / 10) % 10` 表示十位数,`digit3 = n / 100` 表示百位数。 ### 第3周(M3) ##...

    专升本C++复习题.docx

    3. 求整数的位数并逆序输出:同样需要将数字转换为字符串,然后计算字符串长度,反向输出。 4. 同构数的查找:遍历1到99,检查每个数是否在其平方数的右边,这涉及到幂运算和字符串比较。 5. "水仙花数"的输出:...

    2-2排列1

    所以,总共的四位数中4的倍数的个数为10(a的选择)×10(b的选择)×10(d的选择,除去0)=1000种。 通过这些基本概念,我们可以解决文兴高中数学(二)2-2排列中的各种排列问题和关于4的倍数的计数问题。排列和组合...

    c++实现全排列

    但是,由于可选元素个数越来越少,我们的这个 N 位数不能象 10 进制数那样使用一个常数的 n-1次方来做基。因此,我们定义第 n 位的基为 (n-1)!,和 10 进制数将是类似的。 根据这个策略,我们可以得到每次选择的...

    广西贵港木格高中七年级期末测试试卷二精选.doc

    10. **幂的规律**:底数为3的幂的个位数呈现周期性变化,每4次幂循环一次,所以3的个位数字遵循3, 9, 7, 1的规律。 11. **单项式**:单项式是只包含一个变量或者常数的代数表达式,没有加减运算。 12. **角度计算*...

    Python期末考试题.docx

    4 bits,因为2的3次方等于8,不够表示10,而2的4次方等于16,足以涵盖0到10的所有整数。 2. 问题2考察字符串与字符数组的关系。题目中字符串"I love studying for final exams!"被存储在一个字符数组lies里,问的...

    Python期末考试题.pdf

    因为0到10共11个值,2的3次方(8)不足以表示所有数值,但2的4次方(16)可以,所以答案是b. 4 bits。 2. 这道题考察的是对字符串的理解。字符串"lies"中的第二个字符是'o',因此正确答案是b. 'o'。 3. 这是一个...

    java小程序

    4. **递归求阶乘**:阶乘是一个数的所有小于等于它的正整数的乘积。使用递归实现时,n! = n * (n-1)!,基础情况为0!和1!都等于1。 5. **递归求斐波那契数列**:斐波那契数列是每个数等于前两个数之和,通常表示为F...

    ACM竞赛常用算法及代码

    **返回值**: 阶乘结果的位数。 **注意**: - 该程序直接输出 `n!` 的结果。 - 需要使用 `long` 类型数组 `a[]` 来存储结果,并且需要包含 `math.h`。 **源程序**: ```c++ int factorial(int n) { long a[10000];...

    C/C++语言经典实用趣味程序设计编程百例精解

    高次方数的尾数 7.阶乘尾数零的个数 8.借书方案知多少 9.杨辉三角形 10.数制转换 &lt;br&gt;C/C++语言经典实用趣味程序设计编程百例精解(2) &lt;br&gt;11.打鱼还是晒网 12.抓交通肇事犯 13.该存...

Global site tag (gtag.js) - Google Analytics