枚举 递归
枚举:
//一组常量的组合
//在不指定任何索引的情况下,默认第一个字段从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+"个桃子");
}
}

浙公网安备 33010602011771号