递归总结 By greenhand

本文详细解释了递归的概念及其在解决数学问题(如阶乘、斐波拉切数列和累加)中的应用。通过实例代码,展示了递归的基本结构、边界条件的设定以及如何实现原路返回的过程,旨在帮助初学者理解递归算法的核心思想。
ExpandedBlockStart.gifView Code
 1 namespace  递归的理解
 2 {
 3     class Program
 4     {
 5         /// <summary>
 6         /// 总结;写递归一定要考虑【临界条件】  防止死循环!;要【考虑要实现功能的规律】 要给原路返回的计算提供一个基础值(在阶乘里面表现为n==1  return 1;在斐波拉里面表现位第一位和第二位返回值是 1即这句  else if (n>=0&&n<=2)
 7             //{
 8             //    return 1;
 9             //}
10         /// </summary>
11         /// <param name="args"></param>
12         static void Main(string[] args)
13         {
14              //Console.WriteLine(GetCount(5));
15              //Console.WriteLine(GetPositionValue(30));
16              Console.WriteLine(GetSum(3));
17              Console.ReadKey();
18         }
19 
20         //递归实现1--100的累加
21         static int GetCount(int n)
22         {
23             if (n ==1)
24                 return 1;
25             else {
26                  return n + GetCount(n - 1);
27              }
28         }
29         
30         //递归实现斐波拉切数列 [1,1,2,3,5,8.......]
31         /// <summary>
32         /// 递归就是自己调用自己  递归的特点 一:必须要有是递归推出的零界条件 二:递归最后最后一步是一个原路返回的过程 三......
33         /// </summary>
34         /// <param name="n"></param>
35         /// <returns></returns>
36         static int GetPositionValue(int n)
37         {
38             if (n <0)
39                 return 0;
40             else if (n>=0&&n<=2)
41             {
42                 return 1;
43             }
44             else
45             {
46                 return GetPositionValue(n-1+ GetPositionValue(n- 2);
47             }
48         }
49 
50         /// <summary>
51         /// 原路返回的过程【记住】
52         /// </summary>
53         /// <param name="n"></param>
54         /// <returns></returns>
55         static int GetSum(int n)
56         {
57             if (n < 0)
58                 return 0;
59             else if (n == 1)
60 
61                 return 1;
62 
63             else
64                 return n * GetSum(n - 1);
65 
66         }//当GetSum(n-1)==1时返回 会执行return 1;这之后从这个}这里 会返回到 return n * GetSum(n - 1);这里进行计算
67     }
68 }

转载于:https://www.cnblogs.com/wangm01-mysoft/archive/2011/08/30/GreenHandwm.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值