C语言之数组50以内的阶乘

#include

//因为不知道50的阶乘有多少位,所以用100代

#define N 100

void fun(int);

int main()

{

int i;

// int n; //以下三行是计算输入一个数的阶乘

// printf("input the number:");

// scanf("%d",&n);

for(i=1;i<50;i++) fun(i);//此循环是通过调用函数,计算1到49的阶乘

return 0;

}

void fun(int n)

{

int a[N]={1}; //初始化数组,将第一个初始化为1,其余为0

int i,j,m,b=0;

for(i=2;i<=n; i++)//用循环实现阶乘的累乘

{

for(j=0; j<=i+20; j++)//为了减少计算,将循环条件改成i+20

{

m=a[j]*i+b;//用一个数去乘数组的一个元素,得到的结果加上上次剩余的数b

a[j]=m%10;//取个位保存到当前位置

b=m/10;//去掉个位,保留余下的部分,作为下次累加//以上三行是算法的核心

}

}

for(i=N-1; i>0; i--) if(a[i]!=0) break; //从后面往前面查找,直到第一个不为零的数

printf("%d!=",n);

for(j=i; j>=0; j--) //对数组元素进行逆序输出,因为存放的时候是从小位到高位

printf("%d",a[j]);

printf("\n");

}

运行结果:

1!=1

2!=2

3!=6

4!=24

5!=120

6!=720

7!=5040

8!=40320

9!=362880

10!=3628800

11!12!=479001600

13!=6227020800

14!=87178291200

15!=1307674368000

16!=20922789888000

17!=355687428096000

18!=6402373705728000

19!=121645100408832000

20!=2432902008176640000

21!=51090942171709440000

22!=1124000727777607680000

23!=25852016738884976640000

24!=620448401733239439360000

25!=15511210043330985984000000

26!=403291461126605635584000000

27!=10888869450418352160768000000

28!=304888344611713860501504000000

29!=8841761993739701954543616000000

30!=265252859812191058636308480000000

31!=8222838654177922817725562880000000

32!=263130836933693530167218012160000000

33!=8683317618811886495518194401280000000

34!=295232799039604140847618609643520000000

35!=10333147966386144929666651337523200000000

36!=371993326789901217467999448150835200000000

37!=13763753091226345046315979581580902400000000

38!=523022617466601111760007224100074291200000000

39!=20397882081197443358640281739902897356800000000

40!=815915283247897734345611269596115894272000000000

41!=33452526613163807108170062053440751665152000000000

42!=1405006117752879898543142606244511569936384000000000

43!=60415263063373835637355132068513997507264512000

c语言求50以内阶乘,C语言之数组50以内的阶乘.doc相关推荐

  1. python求sinx近似值_c语言求sinx的近似值 c语言求sinx近似值

    #includevoid main(){ float x,a=0,b,t,n=1,s=1,c=1; printf("请输入x的值:"); scanf("%f", ...

  2. c语言求铁合金球体体积,C语言的基本控制结构.ppt

    C语言的基本控制结构 程序设计的基本方法 根据计算机的特点,结合循环与分支结构在程序设计时常使两 种常用的基本方法. 枚举法(穷举法) 迭代法 本专题将结合分支和循环介绍两种方法的基本思想和 具体实现 ...

  3. C语言求斜边程序,用C语言编写勾股定理求斜边

    勾股定理已知两直角边求斜边的公式为:两直角边边长的平方和等于斜边的平方. 定义两直角边的分别为a和b,斜边为c.用数学表达式可表示为:a^2+b^2=c^2.则斜边长为根号下(a^2+b^2). C语 ...

  4. c语言求三门课总成绩,C语言编程,求高手 编写程序求某班20位学生三门课(英语,数学,语文)总成绩,并按照总成绩从大到小...

    C语言编程,求高手 编写程序求某班20位学生三门课(英语,数学,语文)总成绩,并按照总成绩从大到小 关注:212  答案:3  mip版 解决时间 2021-01-17 10:35 提问者夜落花台 2 ...

  5. c语言求不定式的最大值,C语言之四则运算表达式求值(链栈)—支持浮点型数据,负数, 整型数据运算...

    运算符间的优先级关系: 链栈结构体定义: 数据域使用字符串长度为20的字符数组(故需要注意判断读取的字符串是运算符还是数值) 可支持浮点型数据,负数, 整型数据的运算 float EvaluateEx ...

  6. c语言求定积分的程序,C语言用六种方法求定积分

    <C语言用六种方法求定积分>由会员分享,可在线阅读,更多相关<C语言用六种方法求定积分(14页珍藏版)>请在人人文库网上搜索. 1.C语言 用六种方法求定积分C语言实验报告hW ...

  7. c语言求平方程序源代码,C语言求平方根源程序.docx

    编程序求10000之内的完全平方数的平方根 #include main() { int a,b,d,e,f; int A; int i,j; printf("\n\n***** 先把100以 ...

  8. c语言求两者之间最小数,C语言课件第2章基本数据类型.ppt

    C语言课件第2章基本数据类型 第 2 章 基本数据类型 1.标识符 例2.1 常量和变量的使用. #include "stdio.h" #define WIDTH 80 //定义符 ...

  9. c语言求5个数最小公倍数,C语言,求从键盘输入的五个自然数的最小公倍数

    满意答案 江湖矛盾四不象 2013.11.27 采纳率:47%    等级:12 已帮助:5468人 //下面是C++的,求N个数的最小公倍数. 给你说下思路吧,n个数的最小公倍数等于 前n-1个数的 ...

  10. c语言求最多啤酒数,C语言,算法、动态规划:有一个箱子的容量为v(正整数,0=v=20000),同时有n个物品(0n=30),...

    满意答案 24k纯真爱l 2013.11.07 采纳率:42%    等级:12 已帮助:9552人 #include #define N 30 int xiangzi(int n ,int V ,i ...

最新文章

  1. 物理机linux无法上网,物理机不能访问虚拟机VMNet8中的Linux
  2. 【采用】风控老客户续贷业务知识
  3. 【网络安全】Xred蠕虫再分析及修复工具编写
  4. oracle json入参调用ws服务返回请求失败_Spring 5.2.2技术集成 —Spring HTTP调用程序和JAXWS...
  5. oracle导入impdp
  6. Python稳基修炼的经典案例11(计算机二级、初学者必会输入输出训练)
  7. uva10069-Distinct Subsequences
  8. ImageNet 数据集
  9. LVS-三种负载均衡方式比较
  10. 2020年上海将初步建成“泛在化、融合化、智敏化”智慧城市
  11. 2014计算机三级网络,2014计算机三级网络技术知识点.doc
  12. 控制工程实践(7)——PID四种类型控制器(之比例控制器P)
  13. python取字符串首字母_python字符串操作
  14. 论文阅读:Semantic Aware Attention Based Deep Object Co-segmentation(ACCV2018)
  15. PNG、IconFont、SVG图标使用
  16. 全国计算机专业录取分数线排名,2020中国高校录取分数线排名全国大学录取分数线表...
  17. c语言鼠标打地鼠程序,如何使用C语言实现打地鼠的游戏
  18. GDKOI 2017 滚粗记
  19. C++编译时提示:error: ‘x’ does not name a type
  20. 机器人/人工智能/就业形势2023

热门文章

  1. 【语音去噪】基于切比雪夫+椭圆形低通滤波器语音去噪附GUI界面
  2. 全国计算机noi,中国计算机协会关于设立NOI基地的公告
  3. 《MapReduce: Simplified Data Processing on Large Clusters》译文
  4. java小游戏贪吃蛇
  5. svn使用过程中遇到的错误
  6. 跨考408计算机学科专业基础综合,考研北京航空航天大学计算机学科专业基础综合(408)重难点解析.doc...
  7. Day01JAVA入门
  8. 1.结束进程的正确方式
  9. C++封装一个易用的打印backtrace信息的函数
  10. 二级管的正向恢复与反向恢复时间