我通常用Javascript编写Euler解决方案。对于需要非常大整数的问题,我决定学习Scala并利用BigInt。我为Euler025编写了一个解决方案,它工作得很快,但读起来像Javascript。请审阅者评论如何更具体地编写此解决方案,如果您有JS背景,您发现哪些资源对学习语法/最佳实践有帮助?
Fibonacci序列中包含1000位数字的第一个项的索引是什么?
解决方案:
def e25(): Int = {
var a = BigInt("1")
var b = BigInt("1")
var index = 3
while(index > 0) {
val temp = a + b
if (temp.toString().length() > 999) {
return index
}
index += 1
a = b
b = temp
}
index
}
println(e25())发布于 2015-10-06 14:04:37
您一举解决了这个问题,这违背了Scala鼓励的函数式编程原则:
Fibonacci序列中包含1000位数字的第一个项的索引是什么?
可分解为:
https://codereview.stackexchange.com/questions/106671
复制相似问题