http://acm.nyist.net/JudgeOnline/problem.php?pid=28

大数阶乘

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述
我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?
输入
输入一个整数m(0<m<=5000)
输出
输出m的阶乘,并在输出结束之后输入一个换行符
样例输入
  1. 50
样例输出
  1. 30414093201713378043612608166064768844377641568960512000000000000
程序代码:
     
  1. #include<stdio.h>
  2. #include<math.h>
  3. int main(){
  4. int n;
  5. while(scanf("%d",&n)!=EOF){
  6. long a[];
  7. int i,j,l,c,m=,w;
  8. a[]=;
  9. for(i=;i<=n;i++){
  10. c=;
  11. for(j=;j<=m;j++){
  12. a[j]=a[j]*i+c;
  13. c=a[j]/;
  14. a[j]=a[j]%;
  15. }
  16. if(c>) {m++;a[m]=c;}
  17. }
  18.  
  19. w=m*+log10(a[m])+;
  20. printf("%ld",a[m]);
  21. for(i=m-;i>=;i--) printf("%4.4ld",a[i]);
  22. printf("\n");
  23. }
  24. return ;
  25. }
  1. 大数阶乘位数的计算方法是(int)log10(x)+
    这个是计算x的位数的
    log10(n!)=log10()+log10()+log10()+...+log10(n)

nyoj___大数阶乘的更多相关文章

  1. nyist28大数阶乘

    http://acm.nyist.net/JudgeOnline/problem.php?pid=28 大数阶乘 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 我们 ...

  2. 大数阶乘(c语言)

    大数阶乘.代码比较简单. #include<stdio.h> #include<string.h> #define MAXN 25000 // 如果你的阶乘N比较大,建议大一点 ...

  3. 【大数阶乘】NYOJ-28

    大数阶乘 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?   输入 输入一个整数 ...

  4. 大数阶乘 nyoj

    大数阶乘 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?   输入 输入一个整数 ...

  5. 【ACM】大数阶乘 - Java BigInteger实现

    大数阶乘 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?   输入 输入一个整数 ...

  6. 大数阶乘(c++实现)

    #include <iostream>using namespace std;#define N 1000int BigNumFactorial(int Num[], int n);voi ...

  7. HDU 1133 Buy the Ticket (数学、大数阶乘)

    Buy the Ticket Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  8. 大数阶乘(C/C++)

    高精度的运算在Java中是很容易实现的,就像 a + b Problem 一样,因为Java提供了相应的类库和API:但是在 C/C++ 当中就没有那么现成的类和API来让你调用了.本着“自己动手,丰 ...

  9. #035 大数阶乘 PTA题目6-10 阶乘计算升级版 (20 分)

    实际题目 本题要求实现一个打印非负整数阶乘的函数. 函数接口定义: void Print_Factorial ( const int N ); 其中N是用户传入的参数,其值不超过1000.如果N是非负 ...

随机推荐

  1. loadrunner安装方法

    1.loadrunner安装网盘地址:  http://pan.baidu.com/s/1hrP6mDQ 一般会提示:“vc2005_sp1_with_atl_fix_redist 2.确认时提示缺少 ...

  2. 【JavaScript高级进阶】JavaScript变量/函数提升的细节总结

    // 测试1 console.log('----------test1--------------'); console.log(global); // undefined var global = ...

  3. python-flask-2 安装及设定 flask

    https://linoxide.com/linux-how-to/install-flask-python-ubuntu/ 1. prerequisites > create a new us ...

  4. linux文件的特殊权限及隐藏权限

    基础知识 相信大家应该都知道linux的文件基本权限,使用ls -l命令可以显示文件的基本权限,"-rwxrwxrwx.",第一位表示文件的属性(是文件-  ,目录d等),后面每隔 ...

  5. Linux挂载NAS共享文件夹

    [root@ftp:/mnt] > mount -o username=user01,password=1234567890 //192.168.31.20/share /mnt/nas [ro ...

  6. onunload与onbeforeunload事件解析 标签: 浏览器 2017-04-10 09:46 45人阅读 评论(0)

    注:只测试了chrome和IE浏览器的表现情况 onunload事件 //JS Document window.onunload = onunload_message; function onunlo ...

  7. 单例模式的理解【php】

    单例模式(Singleton Pattern):顾名思义,就是只有一个实例.作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 为什么要使用单例模式 1.P ...

  8. eclipse jvm调优

    1.初始参数 -Xms256m-Xmx1024m 2.在eclipse.ini中加入,注意一点的是D:/soft/eclipse-jee,这个目录必须存在,启动时并不会自动目录 -verbose:gc ...

  9. C#--async-await的用法

    NET 中的 async/await 异步编程 MSDN上的文章 **async与await最佳实践 需要先理解thread的用法,再掌握task的用法,才能力理解async和await的用法 usi ...

  10. 使用imgareaselect 辅助后台进行图片裁剪

    由于项目其中用到图片裁剪,本来能够不用到后台进行裁剪的,可是要兼容万恶的IE浏览器,所以不得不使用后台进行裁剪. 这次使用到imgareaselect 插件获取须要裁剪区域的坐标.再由后台进行裁剪操作 ...