C#采用递归实现阶乘的方法
2023-06-13 09:15:43 时间
本文实例讲述了C#采用递归实现阶乘的方法,供大家参考之用。通常来说,如果想实现一个阶乘,比如6*5*4*3*2*1,首先想到的可能是循环遍历。
如下示例所示:
classProgram { staticvoidMain(string[]args) { Console.WriteLine("请输入一个数"); intnumber=Convert.ToInt32(Console.ReadLine()); doubleresult=JieCheng(number); Console.WriteLine(number.ToString()+"的阶乘结果是:"+result.ToString()); Console.ReadKey(); } publicstaticdoubleJieCheng(intnumber) { if(number==0) { return0; } //初始值必须设置为1 doubleresult=1; for(inti=number;i>=1;i--) { result=result*i; } returnresult; } }
但以上的阶乘还有一种实现方式:6*(6-1)*(6-2)*(6-3)*(6-4)*(6-5)或6*(6-1)*(5-1)*(4-1)*(3-1)*(2-1),也就是说后面数总是由前面的数减1得到的。
当实现的逻辑相同,且内部递归方法的参数可以由外部递归方法的参数,经过某种算法而获得,这正是递归登场的时候。
实现代码如下:
publicstaticdoubleJieCheng(intnumber) { if(number==0) { return1; } returnnumber*JieCheng(number-1); }
希望本文所述实例对学习算法的朋友能有所帮助。
相关文章
- C# 匿名方法和拉姆达表达式「建议收藏」
- c# mysql executenonquery_c#数据四种执行方法(ExecuteNonQuery)
- c# mysql executenonquery_C#与数据库访问技术总结(八)之ExecuteNonQuery方法
- c# mysql executenonquery_C#与数据库访问技术之ExecuteNonQuery方法
- C#实现UI控件输出日志的方法案例分享
- 【愚公系列】2023年01月 .NET CORE工具案例-使用pythonnet实现C#和Python的融合调用
- 【Unity3D】Android Studio 工程中使用 Java 代码调用 Unity 的 C# 脚本 ( Java 中调用 UnityPlayer#UnitySendMessage 方法 )
- C# System.Object类型的主要方法
- javascript与asp.net(c#)互相调用方法
- C#中隐式运行CMD命令行窗口的方法
- c#适配器模式
- c#给图片添加文字的代码小结
- C#时间格式化(Datetime)用法详解
- C#设置系统日期格式的方法
- C#身份证验证小例子
- 关于C#生成MongoDB中ObjectId的实现方法
- Question:基于C#连续赋值的面试题介绍
- 解决C#全屏幕截图的实现方法
- C#缩略图多路径多格式保存的实例
- C#调用Matlab生成的dll方法的详细说明
- c#winform取消右上角关闭按钮的实现方法
- C#获取当前页面的URL示例代码
- C#使用FolderBrowserDialog类实现选择打开文件夹方法详解
- c#调用Surfer软件,添加引用的具体操作方法
- c#字符串去掉空格的二种方法(去掉两端空格)
- C#中JavaScriptSerializer帮助类用法实例
- C#使用this关键字实现串联构造函数调用方法
- C#中实现屏蔽Ctrl+C的方法
- C#生成互不相同随机数的实现方法
- C#实现终止正在执行的线程