基本思路采用累乘的方法,乘法笔算的思路,数组记录下所有乘积的位,我写了个具体如下:

#include

int xcfun(int x[],int d[],int ws[],int j,int jw,int len)//模拟笔算乘法,逐位相乘

{

int k=0;

do

{

x[k+j]=(ws[j]*d[k]+jw)%10;

jw=(ws[j]*d[k]+jw)/10;

k++;

}while(d[k]>-1);

if(jw!=0)

{

x[k+j]=jw;

k++;

};

if(k+j>len)len=k+j;

return len;

}

main()

{

int a[2000],b[2000],c[2000],e[2000],d[2000],ws[4];

int i,j,k,jw,len;

for(k=0;k<2000;k++){d[k]=-1;}

d[0]=1;

for(i=1;i<=100;i++)//求100的阶乘

{

ws[0]=i%1000%100%10;

ws[1]=i%1000%100/10;

ws[2]=i%1000/100;

ws[3]=i/1000;

//printf("%d %d %d\n",ws[0],ws[1],ws[2]);

for(k=0;k<2000;k++){a[k]=0;b[k]=0;c[k]=0;e[k]=0;}

len=0;

for(j=0;j<4;j++)

{

k=0,jw=0;//位数,进位

if(ws[j]!=0 && j==0)

{

len=xcfun(a,d,ws,j,jw,len);

/*xcfun函数在判断里的效果

do

{

a[k]=(ws[j]*d[k]+jw)%10;

jw=(ws[j]*d[k]+jw)/10;

k++;

}while(d[k]>-1);

if(jw!=0)

{

a[k]=jw;

k++;

}

if(k>len)len=k;

*/

}

else if(ws[j]!=0 && j==1)

len=xcfun(b,d,ws,j,jw,len);

else if(ws[j]!=0 && j==2)

len=xcfun(c,d,ws,j,jw,len);

else if(ws[j]!=0 && j==3)

len=xcfun(e,d,ws,j,jw,len);

}

jw=0;

for(j=0;j

{

//if(i==22)printf("%d,%d,%d\n",a[j],b[j],c[j]);

d[j]=(a[j]+b[j]+c[j]+e[j]+jw)%10;

jw=(a[j]+b[j]+c[j]+e[j]+jw)/10;

}

if(jw!=0)d[j++]=jw;

printf("%d的阶乘:",i);

for(k=j-1;k>-1;k--)printf("%d",d[k]);//输出得数

printf("\n");

//getch();

}

}

20的阶乘c语言怎么编程,C语言:编写程序,求20的阶乘.相关推荐

  1. c语言 do while 素数,1. 编写程序,求30以内的所有素数之和.用do while做

    用JAVA编写一个程序,求1000以内所有偶数的和以及奇数的和,并将偶数和以及奇数和输出到屏幕上. publicclassTest{publicvoiddisplay(){intsum=0;for(i ...

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

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

  3. java语言编程三角形图形_编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用......

    导航:网站首页 > 编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用... 编程题:编写程序输入三角形的3条边长,计算并输出... 求助 ...

  4. python1到20数字阶乘_Python 程序求数字的阶乘

    Python 程序求数字的阶乘 在本文中,您将学习查找数字的阶乘并显示它. 要理解此示例,您应该了解以下Python编程主题: 一个数字的阶乘是从1到该数字的所有整数的乘积. 例如,阶乘6为1 * 2 ...

  5. 编写程序求n!--C语言中数组的使用

    注:部分内容摘自<数据结构>,黄国瑜,叶乃菁编著,清华大学出版社. 需求:编写程序求n!. 分析:数字相乘可以分解为各个阶位相乘,比如百位数A*B可分解为A100*B+A10*B+A1*B ...

  6. C++中如何读取一个数的位数_C语言编写程序求水仙花数

    C语言编写程序求水仙花数 水仙花数是一个数学问题,其实质是一个三位数,个位数的立方加十位数的立方加百位数的立方之和等于这个三位数本身.例如153=1*1*1+5*5*5+3*3*3,即153=1+12 ...

  7. 【C语言】平均分的战争。有m个人的成绩存放在score数组中,请编写程序求出平均成绩并且罗列出低于平均分的分数。

    [问题描述] 平均分的战争.有m个人的成绩存放在score数组中,请编写程序求出平均成绩并且罗列出低于平均分的分数. [输入形式]输入共两行: 第一行成绩个数N,N<=20 第二行,N个以空格分 ...

  8. c语言链表编程,C语言 实现链表

    搜索热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. #include "stdafx.h" #include & ...

  9. c语言winpcap编程,c语言Winpcap编程结构并接收解析arp包

    c语言Winpcap编程构造并接收解析arp包 /* 程序功能: 1.构造arp包,并发送.程序参数顺序:源IP.目的IP.mac地址.flag 2.获取网络中的ARP数据包,解析数据包的内容.程序参 ...

  10. c语言soket编程,C语言socket编程使用方法

    C语言socket编程使用方法 C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.以 ...

最新文章

  1. 面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)...
  2. 离职后才搞懂vue项目开发流程中的疑惑点
  3. [云炬python3玩转机器学习]5-4向量化高效运算
  4. SAP ADBC和JDBC的对比
  5. maven-compiler-plugin 找不到 rt.jar
  6. 研发项目管理中需注意的人性弱点(Z)
  7. chrome自动退出的原因_Chrome 70将让用户选择退出新的自动登录功能
  8. android报错及解决1--Bitmap加载时,报bitmap size exceeds VM budget
  9. camelcase_在Python中将字符串转换为camelCase
  10. E9启动后无法打印日志
  11. 使用IConfigurationSectionHandler在web.config中增加自定义配置
  12. android多开技术,多开常见配置 - 技术交流 - 逍遥安卓论坛 - Powered by Discuz!
  13. ClouderaCDH安装配置说明
  14. Hexo添加Icarus主题
  15. 8251A可编程串行接口
  16. android 引入sdk,导入 SDK
  17. java数据类型有哪些(给博主倒一杯卡布奇诺)
  18. Linux学习(Kali为蓝本)
  19. 52个小技巧让WP手机使用更顺手
  20. 疫情严峻,为什么VR全景能逆生长?

热门文章

  1. 【代码块】Android代码执行ADB指令
  2. 【疑难解决】将设备通过Ehome协议接入EasyCVR,级联后视频无法播放如何解决?
  3. mysql语句怎么拼接字符串_mysql字符串拼接
  4. 国内主流的ERP软件大盘点
  5. 主成分分析(PCA)算法实现iris数据集降维
  6. kindle资源网址
  7. linux下面如何看抓包文件,linux抓包
  8. 01-nodeJs下载及安装
  9. 如何在手机上查看APP原型
  10. Windows7系统的70个小技巧