C# 函数3 (函数的递归)

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace ConsoleApplication1
 7 {
 8     class Program
 9     {
10          // 要理解递归,先要理解递归.   (这只是一句玩笑话 )
11         // 递归,顾名思义就是递来归去,如此反复,直到不符合某个条件.  而函数递归意思也就是函数调用函数自己. 下面用代码来示例:
12 
13         static int Funtion(int n)  // 用这个函数实现阶乘 , n表示阶乘的次数
14         {
15             if (n <= 1)
16                 return 1;
17             else
18                 return n * Funtion(n - 1);
19         }
20 
21         // 再使用一个函数来表示斐波纳契数列   (斐波纳契数列的规律是, 从第三项开始,每一项都是前两项之和)
22 
23         static int Fei(int n) // n 表示斐波纳契数列的项.
24         {
25             if (n < 3)
26                 return 1;
27             else
28                 return Fei(n - 1) + Fei(n - 2);
29         }
30 
31         static void Main(string[] args)
32         {
33             // 调用上面的阶乘函数.
34             Console.WriteLine("请输入需要阶乘的次数:");
35             Console.WriteLine(Funtion(Convert.ToInt32 (Console.ReadLine())));
36 
37             //调用斐波纳契数列函数.
38             Console.WriteLine("请输入你想要实现多少项");
39             int n = Convert.ToInt32(Console.ReadLine());
40             // 用 for 语句把每一项都打印出来.
41             for (int i = 1; i <= n; i++)
42             {
43                 Console.Write("{0}\t", Fei(i));
44                 if (i % 5 == 0)
45                     Console.WriteLine();
46             }
47         }
48     }
49 }
50 /* 运行结果如下 : 
51  请输入需要阶乘的次数:
52 10
53 3628800
54 ------------------------
55 请输入你想要实现多少项
56 30
57 1       1       2       3       5
58 8       13      21      34      55
59 89      144     233     377     610
60 987     1597    2584    4181    6765
61 10946   17711   28657   46368   75025
62 121393  196418  317811  514229  832040
63  */
posted @ 2012-09-05 20:44  梦断难寻  阅读(5083)  评论(0编辑  收藏  举报