简单的递归算法 数据库 第1张        static void Main(string[] args)
简单的递归算法 数据库 第2张        {
简单的递归算法 数据库 第3张            Console.WriteLine(Process1(30));
简单的递归算法 数据库 第4张            Console.ReadLine();        
简单的递归算法 数据库 第5张        }
简单的递归算法 数据库 第6张        public static int Process1(int i)
简单的递归算法 数据库 第7张        {
简单的递归算法 数据库 第8张            //计算数组{1,1,2,3,5,8.......} 第30位值
简单的递归算法 数据库 第9张            if (i == 0return 0;
简单的递归算法 数据库 第10张            if (i == 1return 1;
简单的递归算法 数据库 第11张            else
简单的递归算法 数据库 第12张                return Process1(i - 1+ Process1(i - 2);
简单的递归算法 数据库 第13张        }

做了一些练习:

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

 

简单的递归算法 数据库 第14张        static void Main(string[] args)
简单的递归算法 数据库 第15张        {
简单的递归算法 数据库 第16张            Console.WriteLine(Process2(100));
简单的递归算法 数据库 第17张            Console.ReadLine();    
简单的递归算法 数据库 第18张        }
简单的递归算法 数据库 第19张        public static int Process2(int i)
简单的递归算法 数据库 第20张        {
简单的递归算法 数据库 第21张            //计算1+2+3+4+...+100的值
简单的递归算法 数据库 第22张            if (i == 0return 0;
简单的递归算法 数据库 第23张            return Process2(i - 1+ i;
简单的递归算法 数据库 第24张
简单的递归算法 数据库 第25张        }

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

 

简单的递归算法 数据库 第26张        static void Main(string[] args)
简单的递归算法 数据库 第27张        {
简单的递归算法 数据库 第28张            Console.WriteLine(Process3(9- Process3(8));
简单的递归算法 数据库 第29张            Console.ReadLine();  
简单的递归算法 数据库 第30张        }
简单的递归算法 数据库 第31张        public static int Process3(int i)
简单的递归算法 数据库 第32张        {
简单的递归算法 数据库 第33张            //计算1 -2 +3 +-4+ 5- 6 + 7 - 8 + 9的值
简单的递归算法 数据库 第34张            if (i == 0return 1;
简单的递归算法 数据库 第35张            if (i == 1return 2;
简单的递归算法 数据库 第36张            else return Process3(i - 2+ i;
简单的递归算法 数据库 第37张        }

3.汉诺塔问题

 

简单的递归算法 数据库 第38张        static void Main(string[] args)
简单的递归算法 数据库 第39张        {
简单的递归算法 数据库 第40张            Hanoi(5'A''B''C');
简单的递归算法 数据库 第41张            Console.ReadLine();
简单的递归算法 数据库 第42张        }
简单的递归算法 数据库 第43张        public static void Hanoi(int n ,char A, char B, char C)
简单的递归算法 数据库 第44张        {
简单的递归算法 数据库 第45张            //汉诺塔问题
简单的递归算法 数据库 第46张            //将n个盘子从A座借助B座,移到C座
简单的递归算法 数据库 第47张            if (n == 1) Move(A, C);
简单的递归算法 数据库 第48张            else
简单的递归算法 数据库 第49张            {
简单的递归算法 数据库 第50张                Hanoi(n - 1, A, C, B);
简单的递归算法 数据库 第51张                Move(A, C);
简单的递归算法 数据库 第52张                Hanoi(n - 1, B, A, C);
简单的递归算法 数据库 第53张            }
简单的递归算法 数据库 第54张
简单的递归算法 数据库 第55张        }
简单的递归算法 数据库 第56张        public static void Move(char startPlace, char endPlace)
简单的递归算法 数据库 第57张        {
简单的递归算法 数据库 第58张            Console.WriteLine("Move {0} To {1}",startPlace,endPlace);
简单的递归算法 数据库 第59张        }

4.用递归法将一个整数n转换成字符串,例如,输入483,就输出字符串"483".n的位数不确定,可以是任意位数的整数。

 

简单的递归算法 数据库 第60张        static void Main(string[] args)
简单的递归算法 数据库 第61张        {
简单的递归算法 数据库 第62张            IntToString(483"");
简单的递归算法 数据库 第63张            Console.ReadLine();
简单的递归算法 数据库 第64张        }
简单的递归算法 数据库 第65张        public static void IntToString(int input,String output)
简单的递归算法 数据库 第66张        {
简单的递归算法 数据库 第67张         //用递归法将一个整数n转换成字符串,例如,输入483,就输出字符串"483".n的位数不确定,可以是任意位数的整数。
简单的递归算法 数据库 第68张         //   String output = "";
简单的递归算法 数据库 第69张            output = input % 10+output;
简单的递归算法 数据库 第70张            if (input / 10 != 0)
简单的递归算法 数据库 第71张            {
简单的递归算法 数据库 第72张                IntToString(input / 10,output);
简单的递归算法 数据库 第73张            }
简单的递归算法 数据库 第74张            else Console.WriteLine(output);
简单的递归算法 数据库 第75张        }