首页 > 代码库 > 蓝鸥Unity开发基础二——课时12 递归

蓝鸥Unity开发基础二——课时12 递归

蓝鸥Unity开发基础二——课时12 递归

一、递归

递归-在方法体内,再次调用方法本身

递归必须有出口

using System;

namespace lesson_12
{
    public class Math{

        //递归就是在方法内部调用方法本身
        //1、递归必须有结束条件
        //2、将大的复杂的问题分解为与原问题类似的小问题来问题,并且小问题和原问题是同一件事并且更简单

        //递归本身是一种算法
    public  int F(int n){
            //结束条件
            if (n > 1) {
                //进行递归
                return F (n - 1) + n;
            } else {
                return 1;
            }
    }
    }

    class MainClass
    {
        public static void Main (string[] args)
        {
            //计算:1+2+3+4……+99+100的和

            /*数据角度解决
             * f(n)=1+2+3+……+(n-1)+n;
             * f(100)=1+2+3+……+99+100;
             * 
             * f(1)=1;
             * f(2)=f(1)+2=1+2;
             * ……
             * f(4)=1+2+3+4;
             * f(5)=1+2+3+4+5=f(4)+5;
             * f(6)=f(5)+6
             * ……
             * f(100)=f(99)+100;
             * 
             * f(n)=f(n-1)+n: (n>1)
             * f(n)=1; (n=1)
             */

            //递归解决
            Math m=new Math();
        
            Console.WriteLine (m.F(100));//5050
        }
    }
}


练习:

1、利用递归计算1+2+3+4……+100的值

2、求n=18时n!。(1*2*3***18)


推荐视频讲师博客:http://11165165.blog.51cto.com/

蓝鸥Unity开发基础二——课时12 递归