• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#采用递归实现阶乘的方法

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#求n的阶乘,c#阶乘,c#阶乘代码,c#求阶乘,c#阶乘公式等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了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;
    }
}

</div>

但以上的阶乘还有一种实现方式: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);
}

</div>

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • 2017-05-28.NET中的async和await关键字使用及Task异步调用实例
  • 2017-05-28使用TypeScript开发微信小程序的方法
  • 2017-05-28将数组中指定数量的元素移动数组后面的实现代码
  • 2017-05-28C# 汉字转化拼音的简单实例代码
  • 2017-05-28C#中this用法系列(二) 通过this修饰符为原始类型扩展方法
  • 2017-05-28C#实现移除字符串末尾指定字符的方法
  • 2017-05-28那些年,我还在学习C# 学习笔记
  • 2017-05-28C#把整个文件内容读入字符串变量的方法
  • 2017-05-28C#中使用IFormattable实现自定义格式化字符串输出示例
  • 2017-05-28C# 最齐全的上传图片方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#实现的AES加密解密完整实例
    • C# Winform使用扩展方法实现自定义富文本框(RichTextBox)字体颜色
    • C#中方法的直接调用、反射调用与Lambda表达式调用对比
    • c#和avascript加解密之间的互转代码分享
    • c# 动态加载dll文件,并实现调用其中的方法(推荐)
    • C# 设计模式系列教程-组合模式
    • Extjs4如何处理后台json数据中日期和时间
    • C#中自定义事件和委托实例
    • 解析C#面向对象编程中方法(method)的使用
    • C#编程总结(六)详解异步编程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有