递归算法

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值