partialsums.scala-2.scala
来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 59 行
SCALA
59 行
/* The Computer Language Shootout http://shootout.alioth.debian.org/ contributed by Andrei Formiga modified by Isaac Gouy */object partialsums { def main(args: Array[String]) = { accumulate(0,0,0,0,0,0,0,0,0, Integer.parseInt(args(0))+1, 1,1) } val twothirds = 2.0 / 3.0 def accumulate(a1: double, a2: double, a3: double, a4: double, a5: double, a6: double, a7: double, a8: double, a9: double, n: double, alt: double, k: double) : Unit = { if (k < n) { val k2 = Math.pow(k, 2.0) val k3 = k2 * k val sk = Math.sin(k) val ck = Math.cos(k) accumulate( a1 + Math.pow(twothirds, k - 1.0) ,a2 + 1.0 / Math.sqrt(k) ,a3 + 1.0 / (k * (k + 1.0)) ,a4 + 1.0 / (k3 * sk*sk) ,a5 + 1.0 / (k3 * ck*ck) ,a6 + 1.0 / k ,a7 + 1.0 / k2 ,a8 + alt / k ,a9 + alt / (2.0 * k - 1.0) ,n ,-alt ,k + 1.0 ) } else { val f = "%.9f\t" Console.printf( f + "(2/3)^k\n", a1) Console.printf( f + "k^-0.5\n", a2) Console.printf( f + "1/k(k+1)\n", a3) Console.printf( f + "Flint Hills\n", a4) Console.printf( f + "Cookson Hills\n", a5) Console.printf( f + "Harmonic\n", a6) Console.printf( f + "Riemann Zeta\n", a7) Console.printf( f + "Alternating Harmonic\n", a8) Console.printf( f + "Gregory\n", a9) } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?