Console-算法-递归算法示例
生活随笔
收集整理的這篇文章主要介紹了
Console-算法-递归算法示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| ylbtech-Arithmetic:Console-算法-遞歸算法示例 |
| 1.A,案例 |
-- ylb:算法 -- type:遞歸算法
-- thankyou:sunshine, 謝謝你的默默付出
-- 10:50 2012-04-06
-- ========================================================
| 1.B,解決方案 |
1.B.1,階乘
using System;namespace ConsoleApplication1 {class Program{/// <summary>/// ylb:階乘/// </summary>/// <param name="args"></param>static void Main(string[] args){//7!=7*6*5*4*3*2*1//n!=n*(n-1)!//結束 1!=1Console.WriteLine("請輸入一個大于0的整數");int num = Convert.ToInt32(Console.ReadLine());Console.WriteLine(string.Format("這個整數{0}的階乘為:{1}", num, fun(num)));}static int fun(int num){if (num == 1){return 1;}else{return num * fun(num - 1);}}} }1.B.2,一個經典的遞歸試題(一列數的規則如下: 1、1、2、3、5、8、13、21、34......?)
using System;namespace ConsoleApplication1 {class Program{static void Main(string[] args){//一列數的規則如下: 1、1、2、3、5、8、13、21、34...... //求第30位數是多少, 用遞歸算法實現。 Console.WriteLine("請輸入一個大于0的整數");int num = 30;Console.WriteLine(string.Format("求第{0}位數是{1}", num, fun(num)));}static int fun(int num){if (num <= 0){return 0;}else if (num <= 2){return 1;}else{return fun(num - 1) + fun(num - 2);}}} } 1.B.2.2,一個經典的遞歸試題(一列數的規則如下: 1、1、2、3、5、8、13、21、34......?)(常規方法解決) using System;namespace ConsoleApplication1 {class Program{static int Fun(int i){int sum=0;int temp=1;int temp2=1;if(i<=0){sum=0;}else if(i<=2){sum=1;}else{for(int j=3;j<=i;j++){sum=temp+temp2;temp=temp2;temp2=sum;}}return sum;}/// <summary>/// ylb:常規方法解決(非遞歸)/// </summary>/// <param name="args"></param>static void Main(string[] args){Console.WriteLine(Fun(20));}} }| 作者:ylbtech 出處:http://ylbtech.cnblogs.com/ 本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。 |
轉載于:https://www.cnblogs.com/ylbtech/archive/2013/02/22/2922032.html
總結
以上是生活随笔為你收集整理的Console-算法-递归算法示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初识Ildasm.exe——IL反编译的
- 下一篇: Windows API GetVersi