下载此文档

阶乘程序修改(100以内的阶乘及1000的阶乘).doc


文档分类:法律/法学 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
阶乘程序修改以下程序是对50的阶乘的程序的一种修改!说明程序经过修改后,能够计算出更大的数的阶乘!而修改程序的部分,只需要稍微修改一个地方,程序的主体是没有太多的变化的!说明程序的通用性还是比较高的!//经粗略计算,知100的阶乘不会超过200位,所以用200代!#include<>#defineN200voidfun(int);intmain(){inti;//intn;//以下三行是计算输入一个数的阶乘//printf("inputthenumber:");//scanf("%d",&n);for(i=1;i<=100;i++)fun(i);//此循环是通过调用函数,计算1到100的阶乘return0;}voidfun(intn){inta[N]={1};//初始化数组,将第一个初始化为1,其余为0inti,j,m,b=0,t;for(i=2;i<=n;i++)//用循环实现阶乘的累乘{t=2*i;for(j=0;j<t;j++)//为了减少计算,并且准确,将循环条件设为3*i,即t{m=a[j]*i+b;//用一个数去乘数组的一个元素,得到的结果加上上次剩余的数ba[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!=12!=23!=64!=245!=1206!=7207!=50408!=403209!=36288010!=362880011!=3991680012!=47900160013!=622702080014!=87**********!=0016!=2092278988800017!=18!=019!=20!=021!=0022!=000023!=4000024!=36000025!=8400000026!=58400000027!=6076800000028!=50150400000029!=454361600000030!=31!=032!=33!=034!=00035!=0000036!=00000037!=0000000038!=20000000039!=5680000000040!=27200000000041!=65042!=043!=0044!=045!=00046!=000047!=00000048!=0000000049!=00000000050!=0000000000051!=200000000000052!=2400000000000053!=054!=55!=0056!=00057!=0000058!=000000059!=00000000060!=000000000061!=00000000000062!=0000000000000063!=360000000000000064!=23065!=497066!=14867!=3690068!=571000069!=75400000070!=8270000000071!=37800000000072!=8720000000000073!=406000000000000074!=70075!=7750076!=349077!=34900078!=2520000079!=69300000080!=5540000000081!=969000000000082!=73400000000000083!=6290000000000000084!=129085!=15986!=4970087!=572000088!=**********!=3430000000090!=309000000000091!=77100000000000092!=1090000000000000093!=712094!=86995!=8750096!=80900097!=1240000098!=002000000099!=932000000000100!=93000000000000Processreturned0(0x0)executiontime:.//稍微做了一下修改,1000的阶乘也算出来了,共2568位,后面有249个0!^-^#include<>//经调整得到,1000的阶乘有2568位,为了方便书写,设置为3000#defineN3000voidfun(int);intmain(){fun(10

阶乘程序修改(100以内的阶乘及1000的阶乘) 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库旗舰店
  • 文件大小24 KB
  • 时间2019-12-23