蓝鸥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/

时间: 2024-10-20 21:46:06

蓝鸥Unity开发基础二——课时12 递归的相关文章

蓝鸥Unity开发基础二——课时6 方法

蓝鸥Unity开发基础二--课时6 方法 推荐视频讲师博客:http://11165165.blog.51cto.com/ 对象.方法名(实际参数); Person p=new Person(); P.Say(); 1.带有参数的方法举例 using System; namespace Lesson_06{    class MainClass    {        public class Car{        //l跑        //访问说明符  返回值类型 方法名(参数列表){语句

蓝鸥Unity开发基础二——课时3 访问修饰符

[蓝鸥Unity开发基础二]课时3 访问修饰符 一.访问修饰符 public --公共的,在哪里都能用 private  --私有的,只能够在当前机构体重使用,其他任何地方都不能 访问修饰符举例说明 using System; namespace Lesson_03{           struct Point2{        //public--公共的,在哪里都能用        public float x;        //private  --私有的,只能够在当前机构体重使用,其他

蓝鸥Unity开发基础二——课时21 泛型

本节课我们来学习C#中的泛型,泛型是一个特殊的类型,它可以最大限度的重用我们的代码! 推荐视频讲师博客:http://11165165.blog.51cto.com/ 使用泛型能够最大限度的重用代码,保护类型安全,提高性能 泛型成员因为类型的不确定性,不能使用算术运算符,比较运算符 类型参数可以有多个,可以是编译器能够识别的任何类型 类型参数的名字不能够随便起,不能重名 一.数组类Array using System; namespace Lesson_21{    //数组类Array    

蓝鸥Unity开发基础二——课时22 ArrayList

一.ArrayList 集合:集合是种容器,在程序中,使用集合管理相关对象组 集合分为非泛型集合和泛型集合 推荐视频讲师博客:http://11165165.blog.51cto.com/ 二.非泛型集合:使用非泛型集合需要引起命名空间System.Collections ArrayList--可以根据需要动态增加的数组 Hashtable--用来存储键值对的哈希表 Queue--遵循先进先出的对列 Stack--遵循后进先出的栈 三.泛型集合:使用泛型集合需要引入命名空间System.Coll

蓝鸥Unity开发基础二——课时5 字段

推荐视频讲师博客:http://11165165.blog.51cto.com/ 一.字段 我们用字段描述类的特征 Class Person{ Public string name; Public int age; } 字段的举例说明 using System; namespace Lesson_05{ public class Person{        //字段--用来描述类中的特种        //在类中,可以给字段设置初始值        public  string  name;/

蓝鸥Unity开发基础二——课时15 封装和继承

封装 封装是实现面向对象程序设计的第一步 封装就是讲数据.方法等集合在一个个单元中,我们称之为类 封装的意义在于保护代码/数据,屏蔽复杂性 一.封装能够保护代码,数据安全性+封装可以屏蔽复杂性 using System; namespace Lesson_15{    public  class A{    public  void Open(){                    Console.WriteLine ("打开");            }    }       

蓝鸥Unity开发基础二——课时1 枚举类型

一.声明枚举变量 枚举类型的变量只有赋值之后才能使用 只能讲有效的值赋给枚举变量 不同枚举中的枚举值可以重复 我们可以自定义枚举值 枚举类型举例说明: {    //定义一个新的枚举类型    enum Week{        Monday,    //周一    0        Tuesday,    //周二    1        Wednesday,    //周三    2        Thursday,    //周四    3        Friday,    //周五  

蓝鸥Unity开发基础二——课时16 抽象类

推荐视频讲师博客:http://11165165.blog.51cto.com/ 抽象类 有时设计类仅仅为了表达抽象的概念,不与具体的事物相联系,只作为其派生类的基类使用,用来描述所有子类的共同特征,这时我们可以使用抽象类. 抽象类不能被直接实例化,抽象类中可以包含抽象方法 抽象类和抽象方法一起使用,它们都是C#语言中的一种新的特性.下面让我们用代码演示一下使用方式: using System; namespace Lesson_16{    //抽象方法只能出现在抽象类中    public 

蓝鸥Unity开发基础二——课时27 事件

事件 Event和delegate的关系就好像字段和属性的关系 Event会限制delegate不能够直接赋值操作,防止将委托替换掉,只能使用+=和-=来绑定或者解除绑定 Event还限定了delegate只能在定义的类中被调用 推荐视频讲师博客:http://11165165.blog.51cto.com/ using System; namespace Lesson_27{    public  delegate void  Something(string  name); public