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

简介: 递归的C#实现 1:计算数组{1,1,2,3,5,8.......} 第30位值 class Program {staticvoid Main(string[] args) { Console.

递归的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);
}

  

Creative Commons License本文基于 Creative Commons Attribution 2.5 China Mainland License发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名 http://www.cnblogs.com/luminji(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。
目录
相关文章
|
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