partialsums.scala
来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 46 行
SCALA
46 行
/* * The Computer Language Shootout * http://shootout.alioth.debian.org/ * * contributed by Andrei Formiga */object partialsums{ val twodiv3 = 2.0 / 3.0 var n: double = _ def calculate(s1:double, s2:double, s3:double, s4:double, s5:double, s6:double, s7:double, s8:double, s9:double, sign: double, kd: double): unit = { if (kd > n) { val f = "%.9f\t" Console.printf( f + "(2/3)^k\n", s1) Console.printf( f + "k^-0.5\n", s2) Console.printf( f + "1/k(k+1)\n", s3) Console.printf( f + "Flint Hills\n", s4) Console.printf( f + "Cookson Hills\n", s5) Console.printf( f + "Harmonic\n", s6) Console.printf( f + "Riemann Zeta\n", s7) Console.printf( f + "Alternating Harmonic\n" ,s8) Console.printf( f + "Gregory\n", s9) } else { val k2 = Math.pow(kd, 2.0) val k3 = k2 * kd val sin = Math.sin(kd) val cos = Math.cos(kd) calculate(s1 + Math.pow(twodiv3, kd - 1.0), s2 + Math.pow(kd, -0.5), s3 + 1.0 / (kd * (kd + 1.0)), s4 + 1.0 / (k3 * sin*sin), s5 + 1.0 / (k3 * cos*cos), s6 + 1.0 / kd, s7 + 1.0 / k2, s8 + sign / kd, s9 + sign / (2.0 * kd - 1.0), -sign, kd + 1.0) } } def main(args: Array[String]) = { n = Integer.parseInt(args(0)).toDouble calculate(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0) }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?