国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
C# 遞歸算法?。╪多舉例)

C# 遞歸算法?。╪多舉例)

(2009-12-30 23:31:08)
標簽:

遞歸

算法

雜談

分類: 算法

         今天無所事事,于是重溫了一下遞歸算法。突然之間發(fā)現遞歸算法很好用。

          首先碰到的是這樣的一首題目:計算數組{1,1,2,3,5,8.......} 第30位值,不用遞歸,我寫出了以下這樣的代碼:

       static void Main(string[] args)
       ...{


           int[] num=new int[30];
           num[0]=1;
           num[1]=1;
           int first=num[0];
           int second=num[1];
           for (int i = 2; i < num.Length; i++)
           ...{
               num[i] = first + second;
               first = second;
               second = num[i];
           }
           Console.WriteLine(num[29]);
           Console.ReadLine();

        

       }

 寫出來,十分的累贅,于是改為歸遞算法來寫,一目了然,十分明了。以下是代碼:

       static void Main(string[] args)
       ...{

           Console.WriteLine(Process1(30));
           Console.ReadLine();       
       }
       public static int Process1(int i)
       ...{

 


           //計算數組{1,1,2,3,5,8.......} 第30位值
           if (i == 0) return 0;
           if (i == 1) return 1;
           else
               return Process1(i - 1) + Process1(i - 2);
       }
做了一些練習:

1. 計算1+2+3+4+...+100的值

       static void Main(string[] args)
       ...{
           Console.WriteLine(Process2(100));
           Console.ReadLine();   
       }
       public static int Process2(int i)
       ...{
           //計算1+2+3+4+...+100的值
           if (i == 0) return 0;
           return Process2(i - 1) + i;

       }
2. 計算1 -2 +3 +-4+ 5- 6 + 7 - 8 + 9的值

       static void Main(string[] args)
       ...{

           Console.WriteLine(Process3(9) - Process3(8));
           Console.ReadLine(); 
       }

       public static int Process3(int i)
       ...{
           //計算1 -2 +3 +-4+ 5- 6 + 7 - 8 + 9的值
           if (i == 0) return 1;
           if (i == 1) return 2;
           else return Process3(i - 2) + i;
       }
3.漢諾塔問題

       static void Main(string[] args)
       ...{
           Hanoi(5, 'A', 'B', 'C');
           Console.ReadLine();
       }
       public static void Hanoi(int n ,char A, char B, char C)
       ...{
           //漢諾塔問題
           //將n個盤子從A座借助B座,移到C座
           if (n == 1) Move(A, C);
           else
           ...{
               Hanoi(n - 1, A, C, B);
               Move(A, C);
               Hanoi(n - 1, B, A, C);
           }

       }
       public static void Move(char startPlace, char endPlace)
       ...{
           Console.WriteLine("Move {0} To {1}",startPlace,endPlace);
       }
4.用遞歸法將一個整數n轉換成字符串,例如,輸入483,就輸出字符串"483".n的位數不確定,可以是任意位數的整數。

       static void Main(string[] args)
       ...{
           IntToString(483, "");
           Console.ReadLine();
       }
       public static void IntToString(int input,String output)
       ...{
        //用遞歸法將一個整數n轉換成字符串,例如,輸入483,就輸出字符串"483".n的位數不確定,可以是任意位數的整數。
        //   String output = "";
           output = input % 10+output;
           if (input / 10 != 0)
           ...{
               IntToString(input / 10,output);
           }
           else Console.WriteLine(output);
       }

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/inkstone2006/archive/2008/01/22/2057853.aspx

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C# 06.求正整數各位數字之和
淺談靜態(tài)字段與靜態(tài)構造函數之間的初始化關系以及執(zhí)行順序
[當算法遇上數學]元芳,你怎么能隨即生成m個數,讓其和等于n?(加強版)
C#中string用法實例詳解
C# 4.0四大新特性代碼示例與解讀 - 51CTO.COM
C#構造函數(超詳解,建議收藏!!!)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服