您的位置:首页 > 其它

典型算法及应用——“递归法”探究

2009-07-19 16:18 232 查看
在起始条件已知的情况下,解决一类重复性问题的最佳方案莫过于使用程序设计的三大基本结构之一的“循环”结构(分为“有限次”和“无限次”循环两种情况)。然而现实生活中也存在这样一类问题——起始条件不明确,但结尾却已知;或者问题自身嵌套着自身。在这种情况下我们将采用反向思维,从结尾条件开始往前推演,直到把起始条件推算出为止。这样的一种算法往往被成为“递归”法。本章节将主要对此算法进行一系列的探究。

一、递归法的定义和数学模型:

递归法在数学上的表达函数有点特殊,它是一种自调用函数,形式如下:

Code

class Age
{
private int result = 0;

/// <summary>
/// 标识本次结果
/// </summary>
public int Result
{
get { return result; }
set { result = value; }
}

}

class Program
{
static int GetResult(int n)
{
int sumage = 0;

Stack<Age> ages = new Stack<Age>();

for (int i = n; i <= 4; ++i)
{
Age a = new Age();

if (i == 4)
{
a.Result = 10;
}
ages.Push(a);
}

while (ages.Count>0)
{
Age age = ages.Pop();

if (age.Result == 10)
{
sumage = 10;
}
else
{
age.Result = sumage + 1;
sumage = age.Result;
}
}

return sumage;
}
static void Main(string[] args)
{
Console.WriteLine(GetResult(1));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐