当前位置:  编程技术>.net/c#/asp.net

C#采用递归实现阶乘的方法

    来源: 互联网  发布时间:2014-11-02

    本文导语:  本文实例讲述了C#采用递归实现阶乘的方法,供大家参考之用。通常来说,如果想实现一个阶乘,比如6 * 5 * 4 * 3 * 2 * 1,首先想到的可能是循环遍历。 如下示例所示: class Program { static void Main(string[] args) { Console...

本文实例讲述了C#采用递归实现阶乘的方法,供大家参考之用。通常来说,如果想实现一个阶乘,比如6 * 5 * 4 * 3 * 2 * 1,首先想到的可能是循环遍历。

如下示例所示:

class Program
{
    static void Main(string[] args)
    {
      Console.WriteLine("请输入一个数");
      int number = Convert.ToInt32(Console.ReadLine());
      double result = JieCheng(number);
      Console.WriteLine(number.ToString() + "的阶乘结果是:" + result.ToString());
      Console.ReadKey();
    }
 
    public static double JieCheng(int number)
    {
      if (number == 0)
      {
        return 0;
      }
 
      //初始值必须设置为1
      double result = 1;
 
      for (int i = number; i >= 1; i--)
      {
        result = result*i;
      }
      return result;
    }
}

但以上的阶乘还有一种实现方式:6 * (6-1) * (6-2) * (6-3) * (6-4) * (6-5) 或 6 * (6-1) * (5-1) * (4-1) * (3-1) * (2-1),也就是说后面数总是由前面的数减1得到的。

当实现的逻辑相同,且内部递归方法的参数可以由外部递归方法的参数,经过某种算法而获得,这正是递归登场的时候。

实现代码如下:

public static double JieCheng(int number)
{
  if (number == 0)
  {
 return 1;
  }

  return number * JieCheng(number - 1);
}

希望本文所述实例对学习算法的朋友能有所帮助。


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C#采用OpenXml实现给word文档添加文字
  • C#采用OpenXml给Word文档添加表格
  • C#采用OpenXml给word里面插入图片
  • C#采用HttpWebRequest实现保持会话上传文件到HTTP的方法
  • C#采用Winform实现类似Android的Listener
  • 采用C#实现软件自动更新的方法
  • 采用Linux/Unix作为服务器和采用windows系列有什么优缺点呢?
  • 作CRM现在使用什么开发工具比较方便?采用什么结构?
  • 采用Flash的嵌入式系统中是否难以应用数据库?
  • 请教有没有谁在 LINUX下实现对DVD光盘采用UDF格式刻录的?
  • 如果CSDN采用JSP技术,访问速度会不会加快
  • 请问应用服务器本身也是采用多层结构吗?疑惑中。
  • Solaris系统下,使用gcc编译程序,请问采用1字节对齐应该怎样设置
  • 在调用pthread_testcancel时要采用这样的方式???
  • YC2440开发板采用什么串口线?
  • 消息队列一般是怎么使用的,是采用While的方式进行轮询么
  • 采用UDP对ARM系统远程监测
  • 一个可以自动排序、频繁增删的队列,采用哪种数据结构比较好?
  • 关于采用NT Loader引导redhat7.2的问题。
  • linux系统下,采用 ADSL 路由方式上网,如何设置网络端口interface的值?
  • 各位高手:servlet如何接收采用http上传(如同Email的附件)的文件?
  • linux 可以采用crypt来加密口令,不知道有什么解密方法没有?
  • 采用XML时候大家用DTD还是SCHEMA。
  • HP-UX 11.0 采用的是unix操作系统吗?
  • linux 可以采用crypt来加密口令,不知道有什么解密方法没有? iis7站长之家
  • Primitive 与 String 之间的转换必须采用封装类吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3