以下是简易的代码,因为受数据类型的限制,所以表示的数据范围有限,

故在表示大数据的时候,应该采用数组存储。

同时,在采用数组存储的时候,应该将数组声明为全局变量或static修饰,这样做的目的是使分配的内存空间在堆内存中。

代码如下:

[cpp] view plaincopy
  1. // 1000 的阶乘 2568 位
  2. #include <stdio.h>
  3. int a[3000];
  4. void show(int k)
  5. {
  6. int i=0;
  7. printf("位数 %d 位\n",k);
  8. for (i=k-1; i>=0; i--)
  9. {
  10. printf("%d",a[i]);
  11. }
  12. }
  13. int fanc(int n)
  14. {
  15. int w=0;
  16. int i=0, j=0;
  17. int t=n;
  18. int k=0;    // 表示数据的位数。
  19. i=0, k=0;
  20. while(t)
  21. {
  22. a[i++] = t%10;
  23. t/=10;
  24. k++;
  25. }
  26. for (j=n-1; j>1; j--)
  27. {
  28. w=0;    // 表示进位
  29. for (i=0; i<k; i++)
  30. {
  31. t = a[i]*j+w;
  32. a[i] = t%10;
  33. w = t/10;
  34. }
  35. while(w)
  36. {
  37. a[i++] = w%10;
  38. w/=10;
  39. k++;
  40. }
  41. }
  42. return k;
  43. }
  44. int main()
  45. {
  46. int n;
  47. int k=0;
  48. scanf("%d",&n);
  49. k = fanc(n);
  50. show(k);
  51. printf("\n");
  52. return 0;
  53. }

大数运算_求1000的阶乘(C语言实现)相关推荐

  1. 求1000的阶乘c语言编程,用C语言编写程序,求出1000的阶乘?

    给你个通用的.运行后输入1000. #define M 20000 /* 最大结果位数,DOS能访问的内存有限,最好不要超过 30000 位*/ #define N (M+5) main() { in ...

  2. 求1000的阶乘c语言编程,[原创] 1000的阶乘的程序代码,好题大家分享

    我又改了一下,还是不行,结果为0了.怎么回事啊? #include #include void gewei(int *p,int k); /*声明对个位数的相乘的函数*/ void shiwei(in ...

  3. C语言学习趣事_之_大数运算_加法

    C语言学习趣事_大数运算_之加法 1.引子    在C语言中,因为预定义的自然数类型的大小是有上下限度的,这就决定了在进行数的运算的时候,必然受到限制,同时因为C语言是最接近汇编的一种程序设计语言,并 ...

  4. 蓝桥杯中的阶乘(求1000的阶乘)

    首先这个题,它是求1000的阶乘,他最后的值太大了,以至于不能用int ,long long int 来求.那要怎求呢.那肯定是用最简单的数组来求鸭,用数组来代表它的每一个位. #include &l ...

  5. 如何用递归思想 求n的阶乘 C语言

    如何用递归思想 求n的阶乘 C语言 首先,我讲一下什么是递归? 一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数.执行递归函数将反复调用其自身,每调用一次就进入新的一层,当最内层的函 ...

  6. java 求1000的阶乘_求1000阶乘的结果末尾有多少个0

    素数是个科学计算中很重要的一个概念,素数也叫质数.素数就是最纯净的数,没有任何其它成分的数,其它的数都可以说是由素数相乘出来的. 所以,理解好素数,对于数学和程序来说,有重要的意义. 题目是:求100 ...

  7. 数据结构实验--大数运算之计算n的阶乘 (n≥20)

    一.问题描述 大数运算--计算n的阶乘 (n≥20). [基本要求] (1)数据的表示和存储: ①累积运算的中间结果和最终的计算结果的数据类型要求是整型--这是问题本身的要求. ②试设计合适的存储结构 ...

  8. C++中如何读取一个数的位数_求1000以内的水仙花数

    点击上方 蓝字关注我们 大家好,我是阿汤哥. 看知乎上有朋友说还不明白怎么判断水仙花数,今天我们就来看看这个问题.(PS:"求1000以内的水仙花数"这道题阿汤哥记忆犹新.到现在还 ...

  9. 求1000的阶乘尾部0的个数

    第一种方法: 算出1000!中所有0的个数: /***求1000!中所有的0*/private static void demo1() {BigInteger bi1 = new BigInteger ...

最新文章

  1. rtmp推流直播流程
  2. boost::spirit模块实现自定义用作容器数据的测试程序
  3. 笑死了,打错一个字,竟然...
  4. 从零开始一起学习SLAM | 相机成像模型
  5. 【交通标志识别】基于matlab GUI矩匹配算法路标识别【含Matlab源码 1175期】
  6. 七个不放过和四项原则
  7. 关于2020idea不能创建web项目问题
  8. 简单6步,手把手搭建MinDoc文档库
  9. 数据库连接池运行的原理:
  10. LuoguP4313 BZOJ3894 文理分科——最小割
  11. HTML小游戏9 —— 潜行游戏《侠盗罗宾汉》(附完整源码)
  12. 《Python数据可视化之Matplotlib与Pyecharts》之K线图
  13. 图片去除下间隙(图片3像素)的方法
  14. 面试结束时应该向面试官提出什么问题
  15. 延长SQLyog试用期
  16. 使用element-ui实现表格分页
  17. 软件工程笔记:通用职责分配模式(grasp)
  18. 华为路由器恢复出厂设置
  19. java计算机毕业设计快递配送平台MyBatis+系统+LW文档+源码+调试部署
  20. 动态壁纸,视频特效- Android

热门文章

  1. 计算从前某个时间距离现在经过了多久时间
  2. 如何查看网页端所占的内存大小
  3. 云计算供应商的分类及代表厂商
  4. Vmware安装win7重启后黑屏解决
  5. MIPCMS-006仿某作文网模板
  6. 学习笔记(9):C#急速入门-格式化字符串输出
  7. python爬虫——selenium
  8. idea2017.2激活教程
  9. 时间戳转换为正常时间
  10. 关于校园网能上QQ却打不开网页的问题