【C#】基础学习

自嘲的快乐 2017-08-11


1.new操作符是为类创建一个实例(也称作对象)。

例:

class Program

{

static void Main(string[] args)

{

//圆括号表示类的构造器(也称作构造函数),其中a,b叫做引用变量

A a = new A();

A b = new A(1, 2);

}

}

class A

{

int x;

int y;

public A()

{

}

public A(int x,int y)

{

this.x = x;

this.y = y;

}

}

2.简单的递归算法(函数调用自身)

class Program

{

static void Main(string[] args)

{

A a = new A();

a.Print(10);

}

}

class A

{

public void Print(int x)

{

//如果x=1的时候,就输出1

if (x == 1)

{

Console.WriteLine(x);

}

//不等于1的时候,就调用自身x-1

else

{

Console.WriteLine(x);

Print(x-1);

}

}

}

3.深入学习递归算法

例1:给定1、1、2、3、5、8.........这样一组数字,计算出第x位的数字。

分析:第1和第2个数字都为1,并且可以看出第3为的数字等于第1个数字加第二个数字的和(2 = 1+1),第3个数字的值等于第2个加第3个数字的和(2 = 1+2),那么依次类推,第x数字的值就等于第x-1个加第x-2个数字的和(x = (x-1) + (x-2))

则:

class Program

{

static void Main(string[] args)

{

A a = new A();

a.Print(6);

Console.WriteLine("6:"+a.Print(6));

Console.ReadKey();

}

}

class A

{

public int Print(int x)

{

if (x == 1 || x ==2)

{

return 1;

}

return Print(x-2) + Print(x - 1);

}

}

例2:菲波那切数列 0、1、1、2、3、5、8、13、21、34、55、89、144、233、377、610、987、1597、2584、4181、6765、10946、17711、28657、46368…

分析:第3位数字(1 = 0+1),第4位数字(2 = 1+1),第5位数字(3 = 1+2).........类推可得(x = (x-2) + (x-1))

代码:

class Program

{

static void Main(string[] args)

{

A a = new A();

a.Print(6);

Console.WriteLine("6:"+a.Print(6));

Console.ReadKey();

}

}

class A

{

public int Print(int x)

{

if (x == 1)

{

return 0;

}

if(x == 2)

{

return 1;

}

return Print(x-2) + Print(x - 1);

}

}

例3: 求1+2+3+4+5+....+n的值

分析:假如计算前5位的和,那么也就是说第五位加上后四位的和,那么第四位的和等于后三位的和,依次类推,当找到第一位的时候,把1返回出来,然后依次往回累加,第2位和就等于第1为的值加第2位的值,第3位的和就等于前2位的和加第3位的值,第4位的和就等于前3位的和加第4位的和,第5位的和就等于前4位的和加第5位的值,依次类推,第x位的和就等于前(x-1)位的和加第x位的值

代码:

class Program

{

static void Main(string[] args)

{

A a = new A();

Console.WriteLine("6:"+a.Print(5));

Console.ReadKey();

}

}

class A

{

public int Print(int x)

{

if(x == 1)

{

return 1;

}

return Print(x - 1) + x;

}

}

例4: 1*2*3*4*5*.............

代码;

class Program

{

static void Main(string[] args)

{

A a = new A();

Console.WriteLine("6:"+a.Print(5));

Console.ReadKey();

}

}

class A

{

public int Print(int x)

{

if(x == 1)

{

return 1;

}

return Print(x - 1) * x;

}

}

查看更多主题的豆瓣日记和相册

自嘲的快乐
作者自嘲的快乐
17日记 1相册

全部回应 0 条

添加回应

自嘲的快乐的热门日记

值得一读

    豆瓣
    我们的精神角落
    免费下载 iOS / Android 版客户端