在Scala中生成斐波那契数列
发布时间:2020-12-16 09:30:59 所属栏目:安全 来源:网络整理
导读:def fibSeq(n: Int): List[Int] = { var ret = scala.collection.mutable.ListBuffer[Int](1,2) while (ret(ret.length - 1) n) { val temp = ret(ret.length - 1) + ret(ret.length - 2) if (temp = n) { return ret.toList } ret += temp } ret.toList }
def fibSeq(n: Int): List[Int] = { var ret = scala.collection.mutable.ListBuffer[Int](1,2) while (ret(ret.length - 1) < n) { val temp = ret(ret.length - 1) + ret(ret.length - 2) if (temp >= n) { return ret.toList } ret += temp } ret.toList } 所以上面是我的代码生成一个斐波那契序列使用Scala值n。我想知道在Scala中是否有更优雅的方法? 解决方法
有很多方法来定义斐波纳契序列,但我最喜欢的是这一个:
val fibs:Stream[Int] = 0 #:: 1 #:: (fibs zip fibs.tail).map{ t => t._1 + t._2 } 当您想要一个特定的斐波那契数字时,这将创建一个被懒惰地评估的流。 编辑:首先,正如Luigi Plinge指出的那样,开始时的“懒惰”是不必要的。第二,去看他的答案,他几乎做了同样的事情只是更优雅。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- angularjs – 删除AngularCharts中的网格线
- 数组 – angularJS如何计算输入元素中显示的ng-repeat数据
- 如何在bash中组合timeout和eval命令
- Angular 6 Schematics无效源(未定义)
- bootstrap-datetimepicker报错:无法获取未定义或 null 引用
- WebService开发实例(java代码)
- scp 将数据从一台linux服务器复制到另一台linux服务器
- 创建一个Angular组件以显示要嵌入其他表的一组html表格单元
- Shellshock – “pkg upgrade bash”不会将bash更新到最新的
- 当使用unix管道(在C中)时,操作系统是否使用read()平衡每个w