一些递归使用场景的C#实现

简介:

递归的C#实现

1:计算数组{1,1,2,3,5,8.......} 第30位值

复制代码
class Program
{
staticvoid Main(string[] args)
{
Console.WriteLine(Method1(
0));
Console.WriteLine(Method1(
1));
Console.WriteLine(Method1(
2));
Console.WriteLine(Method1(
3));
Console.WriteLine(
"……");
Console.WriteLine(Method1(
30));
}

staticint Method1(int n)
{
if (n <2)
{
return1;
}
else
{
return Method1(n -1) + Method1(n -2);
}
}
}
复制代码

  

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

复制代码
class Program
{
staticvoid Main(string[] args)
{
Console.WriteLine(Method1(
0));
Console.WriteLine(Method1(
1));
Console.WriteLine(Method1(
2));
Console.WriteLine(Method1(
3));
Console.WriteLine(
"……");
Console.WriteLine(Method1(
100));
}

staticint Method1(int i)
{
if (i ==0)
return0;
return Method1(i -1) + i;
}
}
复制代码

  

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

复制代码
class Program
{
staticvoid Main(string[] args)
{
Console.WriteLine(Method1(
0));
Console.WriteLine(Method1(
1));
Console.WriteLine(Method1(
2));
Console.WriteLine(Method1(
3));
Console.WriteLine(
"……");
Console.WriteLine(Method1(
100));
}

//1 -2 +3 +-4+ 5- 6 + 7 - 8 + 9
staticint Method1(int i)
{
if (i ==0)
return0;
if (i ==1)
return1;
return i%2==0? Method1(i -1) - i : Method1(i -1) + i;
}
}
复制代码

  

4:汉诺塔

复制代码
staticvoid Main(string[] args)
{
Hanoi(
5, 'A', 'B', 'C');
Console.ReadLine();
}

publicstaticvoid 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);
}

}

publicstaticvoid Move(char startPlace, char endPlace)
{
Console.WriteLine(
"Move {0} To {1}", startPlace, endPlace);
}
复制代码

  本文转自最课程陆敏技博客园博客,原文链接:http://www.cnblogs.com/luminji/archive/2011/08/18/1951837.html,如需转载请自行联系原作者

相关文章
|
4月前
|
算法 C#
C#递归详解
C#递归详解
29 0
|
存储 算法 C#
【查找算法】二分查找(C# + 递归、非递归和变种形式)
本文主要介绍二分查找算法,通过图片解析每一次查找的情况。代码通过C#实现,分别有递归、非递归和变种三种形式。其中变种主要**解决数组出现重复数据**的问题。最后,我们还分析了二分查找的局限性。
【查找算法】二分查找(C# + 递归、非递归和变种形式)
C#中汉诺塔问题的递归解法
百度测试部2015年10月份的面试题之——汉诺塔。 汉诺塔就是将一摞盘子从一个塔转移到另一个塔的游戏,中间有一个用来过度盘子的辅助塔。 百度百科在此。 游戏试玩在此。 用递归的思想解决汉诺塔问题就是分为两种情况: 第一种情况是只有一个盘子的情况,也就是最基本的情况,这种情况下,直接将该盘子从原始塔转移到目标塔即可胜利; 第二种情况是右n个盘子的情况,也就是普遍情况,这种情况下,要将除了最底下的那个盘子以外的(n-1)个盘子从原始塔转移到辅助塔,再把最底下的那个盘子(第n个盘子)从原始塔转移到目标塔,最后将辅助塔的(n-1)个盘子从辅助塔转移到目标塔。
1832 0
|
算法 C#
【愚公系列】2021年11月 C#版 数据结构与算法解析(递归)
【愚公系列】2021年11月 C#版 数据结构与算法解析(递归)
109 0
【愚公系列】2021年11月 C#版 数据结构与算法解析(递归)
|
C# 机器学习/深度学习
|
C# 机器学习/深度学习
C#中八皇后问题的递归解法——N皇后
百度测试部2015年10月份的面试题之——八皇后。 八皇后问题的介绍在此。以下是用递归思想实现八皇后-N皇后。 代码如下: using System;using System.Collections.
1185 0
|
程序员 C#
.net c# 正则表达式 平衡组/递归匹配
原文 http://www.cnblogs.com/qiantuwuliang/archive/2011/06/11/2078482.html 平衡组/递归匹配 这里介绍的平衡组语法是由.Net Framework支持的;其它语言/库不一定支持这种功能,或者支持此功能但需要使用不同的语法。
1173 0