递归算法

来源:互联网 发布:mysql怎么卸载干净 编辑:程序博客网 时间:2024/06/05 07:03

递归算法是把问题转化为规模缩小了的同类问题的子问题

c#中如何使用: 

  方法一:

例:一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少。
public class MainClass
  {
  public static void Main()
  {
  Console.WriteLine(Foo(30));
  }
  public static int Foo(int i)
  {
  if (i <= 0)
  return 0;
  else if(i > 0 && i <= 2)
  return 1;
  else return Foo(i -1) + Foo(i - 2);
  }
  }
方法二:退出条件,递归算法的重点
 public static int Sum(int num) 
        {
            
            if (num == 1||num==2)


                return 1;
            else
                return Sum(num - 1) + Sum(num - 2);
        
        }
        static void Main(string[] args)
        {
            int sum = 1;
            for (int i = 0; i <=1; i++)
            {
                sum = sum + 1;
            }
            Console.WriteLine(Sum(30));
            Console.ReadLine();
        }