题目描述:

输入一个正整数N,输出N的阶乘。

输入:

正整数N(0<=N<=1000)

输出:

输入可能包括多组数据,对于每一组输入数据,输出N的阶乘

样例输入:
  1. 4
  2. 5
  3. 15
样例输出:
  1. 24
  2. 120
  3. 1307674368000
  1. #include <cstdio>
  2. #include <cstring>
  3. using namespace std;
  4. const int MAXN=;
  5. struct BigInt{
  6. int e[MAXN];
  7. int len;
  8. BigInt()
  9. {
  10. memset(e,,sizeof(e));
  11. len=;
  12. }
  13. BigInt(long long v)
  14. {
  15. memset(e,,sizeof(e));
  16. len=;
  17. while(v!=)
  18. {
  19. int k=v%;
  20. e[len++]=k;
  21. v/=;
  22. }
  23. }
  24. BigInt operator*(const BigInt &t)const
  25. {
  26. BigInt res;
  27. for(int i=;i<len;i++)
  28. {
  29. int up=;
  30. for(int j=;j<t.len;j++)
  31. {
  32. int z=e[i]*t.e[j]+up+res.e[i+j];
  33. res.e[i+j]=z%;
  34. up=z/;
  35. }
  36. if(up!=)
  37. {
  38. res.e[i+t.len]=up;
  39. }
  40. }
  41. res.len=len+t.len;
  42. while(res.len>&&res.e[res.len-]==) res.len--;
  43. return res;
  44. }
  45. void print()
  46. {
  47. for(int i=len-;i>=;i--)
  48. printf("%d",e[i]);
  49. printf("\n");
  50. }
  51. }res[];
  52. int main()
  53. {
  54. int n;
  55. res[].e[]=;
  56. res[].len=;
  57. for(int i=;i<=;i++)
  58. {
  59. BigInt t(i);
  60. res[i]=res[i-]*t;
  61. }
  62. while(scanf("%d",&n)!=EOF)
  63. {
  64. res[n].print();
  65. }
  66. return ;
  67. }

2006年清华:N的阶乘的更多相关文章

  1. 楼天城楼教主的acm心路历程(作为励志用)

    楼主个人博客:小杰博客 利用假期空暇之时,将这几年GCJ,ACM,TopCoder 參加的一些重要比赛作个 回顾.昨天是GCJ2006 的回顾,今天时间上更早一些吧,我如今还清晰记得3 年 前,我刚刚 ...

  2. 【转】楼天城楼教主的acm心路历程(作为励志用)

    利用假期空闲之时,将这几年GCJ,ACM,TopCoder 参加的一些重要比赛作个回顾.昨天是GCJ2006 的回忆,今天时间上更早一些吧,我现在还清晰记得3 年前,我刚刚参加ACM 时参加北京赛区2 ...

  3. 剪辑的楼天城的ACM之路

    楼天城楼教主的acm心路历程(剪辑) 利用假期空闲之时,将这几年GCJ,ACM,TopCoder 参加的一些重要比赛作个回顾.昨天是GCJ2006 的回忆,今天时间上更早一些吧,我现在还清晰记得3 年 ...

  4. 楼塔当天领袖acm心理(作为励志使用)

    楼主个人博客:吉尔博客 假期空闲的时候使用.这些年来GCJ.ACM,TopCoder 的一个号码的一重要的比赛的参与 回顾.GCJ2006 的回顾,今天时间上更早一些吧,我如今还清晰记得3 年 前.我 ...

  5. 【C/C++】1~20的阶乘之和

    一. 前情   能点进这篇文章的,想必也已经知道了C语言和C++语言,以及阶乘的定义,所以在此不赘述了.SUM(1!~20!)这个问题是我在大一学C语言时的一个小题,最近又要把编译器装回来,所以装完之 ...

  6. 清华教授谈人工智能:BAT还算不上伟大公司

  7. 清华EMBA课程系列思考之三 -- 中国经济与金融

    清华EMBA的第三次课,大家都已经渐渐了解了课程系列的基本节奏,也逐步适应了思考的基本思路,本次课程涉及到的全部内容都非常专业.闲话少述,直入主题了. 李稻葵教授部分: -- 清华大学经济管理学院弗里 ...

  8. 九度OJ 1076:N的阶乘 (数字特性、大数运算)

    时间限制:3 秒 内存限制:128 兆 特殊判题:否 提交:6384 解决:2238 题目描述: 输入一个正整数N,输出N的阶乘. 输入: 正整数N(0<=N<=1000) 输出: 输入可 ...

  9. zz【清华NLP】图神经网络GNN论文分门别类,16大应用200+篇论文最新推荐

    [清华NLP]图神经网络GNN论文分门别类,16大应用200+篇论文最新推荐 图神经网络研究成为当前深度学习领域的热点.最近,清华大学NLP课题组Jie Zhou, Ganqu Cui, Zhengy ...

随机推荐

  1. csv .xlsx

    def gen_file_data(fodir, fname, sheet_index=0, ): if fname.find('.xlsx') > -1: fname_open = '%s\\ ...

  2. 6.让ORM映射执行的时候打印SQL语句

    配置Django日志:\hello_django\hello_django\settings.py 文件中的 LOGGING 加入如下配置: LOGGING = { 'version': 1, 'di ...

  3. 解决ajax get方式提交中文参数乱码问题

    最近在工作中遇到,使用ajax get方式提交中文参数的时候出现乱码,通过上网搜索,总结出比较简单的两种解决方案: 第一种,由于tomcat默认的字符集是ISO-8859-1,修改Tomcat中的se ...

  4. c++学习笔记(网上资料)

                                    C++笔记       2007-3-22 1. 程序 —— 可执行文件,人发送给计算机的一组指令.         硬件指令是二进制, ...

  5. [原创]java WEB学习笔记18:java EE 中的MVC 设计模式(理论)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  6. OpenStack Neutron 之 Load Balance

    OpenStack Neutron 之 Load Balance 负载均衡(Load Balance)是 OpenStack Neutron 支持的功能之一.负载均衡能够将网络请求分发到多个实际处理请 ...

  7. CSS3滑块菜单

    在线演示 本地下载

  8. Oil Deposits -----HDU1241暑假集训-搜索进阶

    L - Oil Deposits Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB   ...

  9. EntityFramework 学习 一 DbContext

    上一节中EDM自动生成SchoolEntities类,该类继承DbContext EntityFramework4.1之前的版本,EDM生成的类继承ObjectContext,使用ObjectCont ...

  10. 算法(Algorithms)第4版 练习 1.3.31

    双向链表实现: //1.3.31 package com.qiusongde.linkedlist; public class DoublyLinkedList<Item> { priva ...