クリアーo(´д`)o
You are the 確認し損ねた…th person to have solved this problem.
【前提】
Scalaで解く!
【問題】
http://projecteuler.net/index.php?section=problems&id=2
【解法】
object euler2 {
def main(args : Array[String]) : Unit =
{
println(fibonacci(4000000).map(x=>if(gusu(x)) x else 0).sum)
}
def fibonacci(max:Int) :List[Int]= {
addNext(List(1,2),max)
}
/**
* リストにリストの最後から2番目と最後の数値を足した値を返す。
*/
def addNext(lst : List[Int],max :Int) :List[Int] =
if((lst.init.last + lst.last) < max) {addNext(lst :+ (lst.init.last + lst.last),max)} else {lst}
def gusu(i:Int)=i/2==i.toDouble/2
}
0 件のコメント:
コメントを投稿