输入不超过1000的正整数n,输出n的阶乘的精确结果

样例输入:30

样例输出:265252859812191058636308480000000

分析:

为了保存结果,需要分析1000!有多大。用计算器算一算不难知道,1000!约等于4*10^2567,因此可以用一个3000个元素的数组f保存。为方便起见,让f【0】保存个位,f【1】保存十位等等,,,(方便向后进位);然后逆序除零输出即可

[cpp] view plaincopy
  1. <span style="font-size:24px;"><strong>#include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4. const int maxn = 3000;
  5. int f[maxn];
  6. int main()
  7. {
  8. int i, j, n;  //n!
  9. cin>>n;
  10. memset(f, 0, sizeof(f));   //对f数组初始化
  11. f[0]=1;    //从1开始乘积
  12. for(i=2;i<=n;i++)
  13. {
  14. int c=0;
  15. for(j=0;j<maxn;j++)
  16. {
  17. int s = f[j]*i + c;
  18. f[j] = s % 10;
  19. c = s / 10;
  20. }
  21. }
  22. for(j=maxn-1;j>=0;j--)
  23. if(f[j])
  24. break;
  25. for(i=j;i>=0;i--)
  26. cout<<f[i];
  27. cout<<endl;
  28. system("pause");
  29. return 0;
  30. }
  31. </strong></span>


阶乘的精确值 大数问题相关推荐

  1. 阶乘的精确值大数阶乘

    输入不超过1000的正整数n;输出n!=1*2*3*4*5.........*n;的精确结果. 样例输入: 30 样例输出: 265252859812191058636308480000000 #in ...

  2. 可以计算阶乘次方的大数计算器

    昨天突然想写个计算器,支持无限位数结果的.于是乎就写了个...现在把写的过程记录下来,供大家互相学习! 首先,要做计算,我首先想到的就是逆波兰. 百度查到的定义是 //---------------- ...

  3. 阶乘计算之大数阶乘与快速取模阶乘计算

    大数阶乘的常规运算 即数学的模拟运算.一位一位的乘,有进位就进位. #include <bits/stdc++.h> #define _xx ios_base::sync_with_std ...

  4. 大数阶乘的位数和精确值计算

    我们知道整数n的位数的计算方法为:log10(n)+1 故n!的位数为log10(n!)+1 如果要求出n!的具体值,对很大的n(例如n=1000000)来说,计算会很慢,如果仅仅是求阶乘的位数,可以 ...

  5. c语言大数阶乘详细,大数阶乘(c语言)

    大数阶乘.代码比较简单. #include #include #define MAXN 25000 // 如果你的阶乘N比较大,建议大一点 int result[MAXN]; int main() { ...

  6. WV.21-大数阶乘算法1-序

    序 大数阶乘的计算是一个有趣的话题,从中学生到大学教授,许多人都投入到这个问题的探索和研究之中,并发表了他们自己的研究成果.如果你用阶乘作关键字在google上搜索,会找到许多此类文章,另外,如果你使 ...

  7. 系列文章-大数阶算之计算从入门到精通(序)

    摘要:本系列文章将深入探讨大数阶乘之计算的各种算法和实现,从最简单的大家最容易想到的算法,到使用各种大数乘法的版本,包括硬乘法.分治法.快速数论变换(FNT)和快速傅立叶变换(FFT)的版本,甚至还有 ...

  8. 编程之美系列之一——阶乘的运算

    前言:       本人一直以来都对算法很有兴趣,前些日子拿到<编程之美>这本书,爱不释手,遂有意将书中的一些本人觉得较有意思的题目以及自己的心得拿出来与大家分享,共同讨论,共同进步. 需 ...

  9. N的阶乘:输入一个正整数N,输出N的阶乘

    输入描述: 正整数N(0<=N<=1000) 输出描述: 输入可能包括多组数据,对于每一组输入数据,输出N的阶乘 输入例子: 4 5 15 输出例子: 24 120 13076743680 ...

最新文章

  1. 用Python轻松搞定Excel中的20个常用操作
  2. Poj 2195 Going Home
  3. cookie及session
  4. Java实现快速排序 Quick Sort
  5. c语言程序设计华北电力大学,华北电力大学-《C语言程序设计》复习资料.pdf
  6. Python全栈开发:configparser模块
  7. C#里Attribute属性
  8. springmvc怎么设置更改了界面不用重启_Microsoft Visual Studio 2019 更改语言包
  9. [dp] LeetCode 62. Unique Paths
  10. InternetCheckConnection 通过尝试连接特定的网址,可以用来判断目前机器是否接通外网
  11. Python pip的使用
  12. 什么样的生意一本万利?
  13. Oracle中 ORA-12704:字符集不匹配
  14. 查询数据表里所有重复里的单条记录
  15. Python设计模式:原型模式
  16. 如何在IDEA上创建一个JSP项目【亲测有效】
  17. 《符号学:原理与推演》引论
  18. 魅族17用鸿蒙系统,发布一年还很香,魅族17升级Flyme 9后太好用了
  19. 普通地图的六大要素_地图的构成要素和基本特性
  20. 2021-2027全球与中国医疗物联网服务市场现状及未来发展趋势

热门文章

  1. 【转】4.1触碰jQuery:AJAX异步详解
  2. NuGet的简单使用
  3. sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系**
  4. 一步步编写操作系统3 部署工作环境 3
  5. Qt下OpenCv中cvGetWindowHandle的使用
  6. 【牛客 - 练习】约数个数的和(数论,数学)
  7. 【牛客 - 303B第十五届浙江大学宁波理工学院程序设计大赛(同步赛)】Fibonacci and Counting(Fib数性质,gcd辗转相除法性质)
  8. 【HihoCoder - 1881】特殊任务 (树形图,遍历)
  9. 【CodeForces - 260B 】Ancient Prophesy (暴力匹配,BF算法,日期字符串)
  10. 图解算法学习笔记(七):狄克斯特拉算法