枚举类型 递归

枚举类型:

        一组常量的组合
        在不指定任何索引的情况下,默认第一个字段从0开始,之后的依次+1
        在指定了某个索引的情况下,之后的字段索引会依次+1
        若之前定义的一个字段的索引指向了之后的某个默认字段,那么,他俩完全相同
        若定义枚举类型时,下面有个字段等于之前的一个字段,那么就是等于这个字段        
        若等于之前的一个常量字段的时候强制取int,那就是等于的这个字段的索引号
       枚举里面有默认的索引,也可以指定;如索引3,但在控制台中不起作用;

用逗号隔开

one=3,

two=2,

three,

如果等于之前的一个常量,那么就等于这个常量;最后一行的逗号可省略

four=three

像上面这种情况 four、three、one完全一致

递归:

一、概念conception:

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

二、应满足条件factor:

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

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

三、例子example

阶乘的计算n!= n*(n-1)*(n-2)*(n-3)*……*1(n>0)


1

2

3

4

5

6

7

8

9

10

11

12

13

//int sum = i * jiecheng(i-1);解析

//i=5

//int sum = 5*jiecheng(4);

//int sum = 5*(4*jiecheng(3));

//int sum = 5*(4*(3*jiecheng(2)));

//int sum = 5*(4*(3*(2*jiecheng(1))));

//int sum = 5*(4*(3*(2*1)));

四、注意事项notice:

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

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

例题:

1、一群羊赶到各村庄去卖,每过一个村丢失之前总数的1/2零1只,过了7个村庄之后还剩两只,问最初赶出多少羊

2、编写递归函数求 2*4*6*……*(2n) 的结果

3、有雌雄一对兔子,每过一个月便可繁殖雌雄各一的一对小兔子。问过n个月后共有多少对兔子?

  
时间: 2024-12-10 12:55:17

枚举类型 递归的相关文章

2017-9-19C#笔记(LinQ标准运算符,String类,String方法,结构体,静态构造函数,枚举类型,位标识)

在LINQ中的标准查询运算符 写LINQ的时候有两种语法:查询语法和方法语法,其中方法语法是命令形式的,它使用的是标准的方法调用.方法是一组叫做标准查询运算符的方法. 标准查询运算符有一系列叫做API的方法组成,他能让我们查询任何.NET数据集合.有关标准查询运算符的重要特性如下: (1)       被查询的结合对象叫做序列,它必须实现IEnumerable<T>接口, T是类型: (2)       标准查询运算符使用方法语法 (3)       一些运算符返回IEnumberable对象

C# Arraylist + struct 综合练习 枚举ENUE 递归

枚举类型 一组常量的组合, 在不制定任何索引的情况下,默认第一个字段从0开始,之后的依次+1 在指定了某个索引的情况下,之后的依次+1 若之前定义的某字段的索引指向了之后的某个默认字段,那么他俩完全相同 不需要初始化 Console.WriteLine(meiju.five); //常量字段 Console.WriteLine((int)meiju.five); //字段代表的值 Console.WriteLine(meiju.one); //常量字段 Console.WriteLine((in

C#枚举类型的常用操作总结

枚举类型是定义了一组"符号名称/值"配对.枚举类型是强类型的.每个枚举类型都是从system.Enum派生,又从system.ValueType派生,而system.ValueType又从system.Object派生,所以枚举类型是指类型. 编译枚举类型时,C#编译器会把每个符号转换成类型的一个常量字段.C#编译器将枚举类型视为基元类型. 1.获取枚举列表:         /// <summary>         /// 获取枚举列表         /// <

获取枚举类型Description特性的描述信息

C#中可以对枚举类型用Description特性描述. 如果需要对Description信息获取,那么可以定义一个扩展方法来实现.代码如下: public static class EnumExtensions { public static string GetDescription(this object value) { if (value==null) return string.Empty; Type type = value.GetType(); var fieldInfo = ty

C++ Primer 笔记——枚举类型

1.和类一样,每个枚举类型定义了一种新的类型.枚举属于字面值常量类型. 2.C++包含两种枚举:限定作用域的和不限定作用域的.C++11新标准引入了限定作用域的枚举类型. enum class /*struct*/ MyEnum { A = 0}; // 限定作用域的枚举 enum class /*struct*/ MyEnum1 { A = 0 }; // 限定作用域的枚举可以有重复的名字,使用时也必须加上作用域 enum MyEnum2 { B = 0 }; // 不限定作用域的枚举 enu

笔记:枚举类型

枚举类型的定义格式如: public enum Size{ SMALL,MEDIUM,LARGE,EXTRA_LARGE} ? ? 实际上,这个声明定义了一个类 size,该类是一个特殊的类,可以定义自己的数据字段.方法.可以实现接口,也可以定义自己的构造器.但枚举类使用 enum 定义后在编译后默认继承了 java.lang.Enum 类,而不是普通的继承 Object类.Enum 声明类继承了 Serializable 和 Comparable 两个接口.且采用 enum 声明后,该类会被编

结构体 枚举类型

结构体 class Program { struct student { public int num; public string name; public string sex; public one oone; public int[] qq; } struct one { public string aa; public int bb; } static void Main(string[] args) { ////struct ////初始化结构体 //student stu = ne

C#之枚举类型

参考: http://www.cnblogs.com/an-wl/archive/2011/04/14/2015815.html 惯例先上MSDN: https://msdn.microsoft.com/zh-cn/library/cc138362(v=vs.110).aspx 枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法.例如,假设您必须定义一个变量,该变量的值表示一周中的一天.该变量只能存储七个有意义的值.若要定义这些值,可以使用枚举类型.枚举类型是使用en

利用枚举类型实现统计

口袋中有5种颜色的小球,每次从口袋中任意取3个,问得到3种不同颜色的小球的可能取法? #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> #include<iomanip> using namespace std; int main() { enum color{red,yellow,blue,white,black};//声明枚举类型color color pri;    //定义color类型的变量pri int i, j,