一个数组:0,1,1,2,3,5,8,13,21...+m,求第 30 位数是多少?用递归实现。
- 斐波那契数列,又称兔子数列,或者黄金分割数列。指的是这样一个数列:0、1、1、2、3、5、8、13、21……从第三项起,它的每一项都等于前两项的和。
- 为什么是兔子数列?(戏称不死神兔)
- 我们假设兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。第一个月我们有一对小兔子,如果所有兔子都不死,那么每个月的兔子对数,就符合斐波那契数列。
阅读关于 斐波那契数列 更多扩展知识
- 写递归要确定两个:递归的终止条件;递归表达式。
- 总结斐波那契数列递归规律:F(n)=F(n-2)+F(n-1)
int F(int n) { if (n == 1) { return 1; } if (n == 2) { return 1; } return F(n - 2) + F(n - 1); }
如何理解三层架构?
- 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。
- 每层之间是一种垂直的关系。
- 区分层次的目的是为了实现“高内聚,低耦合”的思想。
- 表现层(UI):通俗地讲就是展现给用户的界面,即用户在使用一个系统时的所见所得。
- 业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务的逻辑处理。
- 数据访问层(DAL):该层直接操作数据库,针对数据的增、删、改、查。
- 三层结构是 N 层结构的一种,一般来说,层次之间是向下依赖的。
- 下层代码未确定其接口前,上层代码无法开发,下层代码接口的变化将使上层的代码一起变化。
- 优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。
- 缺点: 增加成本
能用 foreach 遍历访问的对象需要?
- 需要实现
IEnumerable
接口或声明GetEnumerator
方法的