CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

阶乘有几种算法?

楼主lenoy()2006-03-29 21:30:13 在 C/C++ / C语言 提问

阶乘有几种算法啊,我只会用递归。  
  请各位高手帮我写下递推和其他几种算法,谢谢了 问题点数:10、回复次数:6Top

1 楼sms88(白板http://shop34112882.taobao.com)回复于 2006-03-29 22:43:26 得分 0

fun(int   n)  
  {  
        if   (n==0   ||   n==1   )  
          return   1;  
        else   return   n   *   fun(n-1);  
  }  
   
   
  Top

2 楼vcmute(BCare4 H1Rest Good9!)回复于 2006-03-29 22:45:46 得分 0

forTop

3 楼sms88(白板http://shop34112882.taobao.com)回复于 2006-03-29 22:50:50 得分 10

fun(int     n)  
  {    
        int   s=1;  
        for(int   i=1;   i<=n;   i++)  
              {  
                  s=s*i;  
                }  
          return   s;  
  }  
                   
         
  Top

4 楼Dragon132(飞龙在天)回复于 2006-03-29 23:26:30 得分 0

阶乘要考虑大数的  
  要不能算的很少Top

5 楼sms88(白板http://shop34112882.taobao.com)回复于 2006-03-29 23:44:42 得分 0

//大数就大数  
  //此算法用数组来求N!的  
  #include   "stdio.h"  
  #define   N   5  
  int   main()  
  {  
  int   digit=1;       //数组的位数  
  int   data[40];     //存储40位数的数组  
   
  for(int   i=1   ;   i   <   40   ;   i++   )     //数组初始为0  
  {  
  data[i]=0;  
  }  
  data[0]=1;         //数组的第一位为1  
  for(   i=1;   i<=N;   i++)  
  {  
  for(int   j=1   ;   j<=digit;   j++)     //对数组中的每一位乘以i  
  data[j-1]*=i;  
  for(   j=1   ;   j<=digit;   j++)  
  if(   data[j-1]   >   10     )   //若有一位数大于10  
  {  
  for(int   k=j-1;   k<=digit;   k++)  
  {  
  if(   data[digit-1]>10     )     //若最高为大于10,则多加一位  
  digit++;  
  data[k+1]+=data[k]/10;  
          data[k]%=10;  
  }  
  }  
  }  
  for(   i=digit;   i>=1;   i--)         //输出数组中的内容,既值  
  printf("%d",data[i-1]);  
  return   0;  
  }  
   
  Top

6 楼sms88(白板http://shop34112882.taobao.com)回复于 2006-03-29 23:46:50 得分 0

这是以前学算法的时候写的.  
  现在可不行了,手和脑都苯了Top

相关问题

  • 求教n的阶乘的算法。
  • 关于 阶乘 的算法(要能算 小数的)!
  • 急: 寻可以求大数的阶乘java算法!
  • 请给计算10000内阶乘的算法,100分
  • 请教:微软计算器的阶乘的算法是什么,如何实现一个浮点数的阶乘?
  • 请大家帮忙,给出一个好的算法!求1到1000的阶乘,并得出结果的位数。
  • C#写的一个N阶乘的递归算法 运行出现异常,请大家帮忙
  • 算法问题,找不出错误,TJU上的阶乘末尾非零数求和 奇怪了
  • 新手初学java,写了一个阶乘算法的程序,改了1个多小时不知道错在哪了
  • 你是程序员吗?你懂几种算法?

关键词

  • 算法
  • data

得分解答快速导航

  • 帖主:lenoy
  • sms88

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo