C#学习笔记----第三周(数组、递归、对象)(1)
2012-09-13 23:04
357 查看
C# :
1、对于类的认识,不能只是局限于课本,到了设计实际编程,就抛开,自己另搞一套。
2、分文件编写是很重要的素养,尽管在现阶段并没有太大的优势,但一旦涉及到较大项目,就会使自己思路清晰。实现功能的分离---多层架构。
3、递归求一列有规律数的任意一个位的数:
题目:有如下规律的一列数:1,1,2,3,5 ,8 ,13 ,21, 34 ...求第30位数是多少?
用递归实现:首先递归并非是最有效率的算法,对于代码的数量,可读性比较好,但效率,内存占用很大,老师在现场演示时,当超过计算40位以上,就会感觉没反应,过了许久才有结果,可想而知,对于再大的数字会有多久的等待。
也有的人提出用数组实现,仔细看看就是累加,但总觉得还是不够完美。
递归:
代码与老师所讲并不是完全一样,但也确时实现了功能,缺点是当初在做时并没有觉得用类来封装,分文件编写。
1、对于类的认识,不能只是局限于课本,到了设计实际编程,就抛开,自己另搞一套。
2、分文件编写是很重要的素养,尽管在现阶段并没有太大的优势,但一旦涉及到较大项目,就会使自己思路清晰。实现功能的分离---多层架构。
3、递归求一列有规律数的任意一个位的数:
题目:有如下规律的一列数:1,1,2,3,5 ,8 ,13 ,21, 34 ...求第30位数是多少?
用递归实现:首先递归并非是最有效率的算法,对于代码的数量,可读性比较好,但效率,内存占用很大,老师在现场演示时,当超过计算40位以上,就会感觉没反应,过了许久才有结果,可想而知,对于再大的数字会有多久的等待。
也有的人提出用数组实现,仔细看看就是累加,但总觉得还是不够完美。
递归:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Recursive { class Program { static void Main(string[] args) { Console.WriteLine("请输入要求的位数:"); string s = Console.ReadLine(); int n = int.Parse(s); int number = operation(n); Console.WriteLine("第{0}位数的值为:{1}", n, number); Console.ReadKey(false); } static int operation(int n) { if (n <= 0) { return 0; } else if(n == 1) { return 1; } else { return operation(n - 1) + operation(n - 2); } } } }
代码与老师所讲并不是完全一样,但也确时实现了功能,缺点是当初在做时并没有觉得用类来封装,分文件编写。
相关文章推荐
- 黑马程序员 C#学习笔记⑨ 序列化对象
- 黑马程序员之C#编程基础学习笔记:计算一个整数数组的所有元素的和。
- 【js学习笔记-045】-- 类对象数组
- 学习笔记——ajax传值数组对象中遇到的问题
- C#回顾学习笔记二十三:静态字段与递归
- (原创)c#学习笔记08--面向对象编程简介01--面向对象编程的含义01--对象的含义01--属性和字段
- (原创)c#学习笔记08--面向对象编程简介01--面向对象编程的含义03--对象的生命周期--构造函数和析构函数
- C#特性 学习笔记(对象初始化器 匿名类型 扩展方法)
- javascript学习笔记--数组对象的操作
- 黑马程序员之C#编程基础学习笔记:将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世"
- C#学习笔记之图片、字节数组、base64之间的转换
- Java学习笔记之输入输出流(二) 缓冲流、随机流、数组流、数据流、对象流
- java学习笔记5.22多维数组以及对象和类
- 新手菜鸟学习C#的笔记总结 之数组与集合(下)
- C#学习基本概念(4000)---对象数组object[]
- Professional C# 学习笔记(三 c#对象和类型)
- (原创)c#学习笔记08--面向对象编程简介02--OOP技术04--对象之间的关系
- php深入学习笔记一(数组与对象之间的相互转化)
- 黑马程序员之C#编程基础学习笔记:将一个整数数组的每一个元素进行如下的处理:如果元素是正数则将这个位置的元素的值加1,如果元素是负数则将这个位置的元素减1。
- 【C#学习笔记3】C#面向对象相关知识2