枚举 递归

枚举:

 

//一组常量的组合
//在不指定任何索引的情况下,默认第一个字段从0开始,之后依次+1
//在指定索引的情况下,之后字段索引依次+1
//若之前定义的一个字段的索引指向了之后的某个默认字段,那么他俩完全相同
//若定义枚举类型时,下面有个字段等于以前的的一个字段,那么就等于之前的那个字段
//若等于之前的一个字段的时候强制取int,那么就等于之前那个字段的值

class Program
    {
        /
        
        //定义
        enum meiju:int 
        {
            //one,
            one=3,
            two=1,
            //two=2,
            three,
            four=three
        }
        static void a(string[] args)
        {
            //在不取int类型的时候,打印出来的是常量字段
            Console.WriteLine(meiju.one);
            //在取int类型的时候,出来的是这个字段代表的值
            Console.WriteLine((int)meiju.one);
            //若定义枚举类型时,下面有个字段等于以前的的一个字段,那么就等于之前的那个字段
            Console.WriteLine(meiju.four);
            //若等于之前的一个字段的时候强制取int,那么就等于之前那个字段的值
            Console.WriteLine((int)meiju.four);
            //不管第一个常量指定索引从几开始,那么之后的所有常量的代表值会自动加1
            Console.WriteLine(meiju.two);
            Console.WriteLine((int)meiju.two);
            Console.WriteLine((int)meiju.three);

            Console.ReadLine();
        }

  

 

递归:

定义:函数体内调用函数本身,直到符合某一条件不再继续调用。

满足条件:

1.有反复执行的过程(调用自身)

2.又跳出反复执行过程的条件(函数出口)

注意事项:

1.递归中必须要存在一个循环结束的条件

2.递归函数每次调用都需要栈来存储,如果次数太多的话容易造成栈溢出。

 

class Class1
    {
        //n的阶乘
        public int Jie(int n)
        {
            int sum;
            if(n==1)
            {
                return 1;
            }
            sum = n * Jie(n-1);
            //sum=5*(4*Jie(3));
            //sum=5*(4*(3*Jie(2)));
            //sum=5*(4*(3*(2*Jie(1))));
            //sum=5*(4*(3*(2*1)));
            return sum;
        }
static void Main(string[] args)
        {
            Class1 jc = new Class1();
            Console.Write("请输入一个正整数:");
            int sum = jc.Jie(int.Parse(Console.ReadLine()));
            Console.WriteLine("sum="+sum);
          }

 

  //老汉卖羊

class Class1
    {
      public int yang(int n)
        {
            int sum;
            if (n == 7)
            {
                return 2;
            }
            sum = 2 * (yang(n + 1) + 1);
            return sum;
        }
    static void Main(string[] args)
        {
            Class1 maiy = new Class1();
            int n = maiy.yang(1);
            Console.WriteLine("最初" + n + "只羊");
         }
    } 

 

 

//猴子摘了好多好多桃子,一天要吃掉总数的2/3,觉得不过瘾,还要多吃1个,
//吃到第九天时,发现只有两个桃子,问最初有多少桃子?

class Class1
    {
     public int taozi(int n)
        {
            int sum;
            if(n==9)
            {
                return 2;
            }
            sum = 3* (taozi(n + 1)+1);
            return sum;
        }
    static void Main(string[] args)
        {
           Class1 hs = new Class1();
            int a = hs.taozi(1);
            Console.WriteLine("最初"+a+"个桃子");
         }
    } 

  

 

 

posted @ 2016-10-20 16:14  浆糊033  阅读(251)  评论(0编辑  收藏  举报