|
Scala example source code file (fannkuch.scala-2.scala)
The Scala fannkuch.scala-2.scala source code
/*
* The Computer Language Shootout
* http://shootout.alioth.debian.org/
*
* contributed by Andrei Formiga
*/
object fannkuch
{
def main(args: Array[String]) {
val n = Integer.parseInt(args(0))
var maxFlips = 0
var permN = 0
var k: Int = 0
var temp: Int = 0
var first: Int = 0
var flips: Int = 0
var perm0: Array[Int] = new Array[Int](n)
var perm: Array[Int] = new Array[Int](n)
var rot: Array[Int] = new Array[Int](n)
while (k < n) { perm(k) = k + 1; rot(k) = 0; k = k + 1; }
while (rot(n - 1) < n) {
if (permN < 30) {
k = 0
while (k < n) {
Console.print(perm(k).toString())
k = k + 1
}
Console.println
permN = permN + 1
}
flips = 0
k = 0
while (k < n) { perm0(k) = perm(k); k = k + 1; }
first = perm0(0)
while(first != 1) {
k = 0
while (k < first / 2) {
temp = perm0(k); perm0(k) = perm0(first - 1 - k); perm0(first - 1 - k) = temp;
k = k + 1
}
first = perm0(0)
flips = flips + 1
}
if (flips > maxFlips) maxFlips = flips
temp = perm(0); perm(0) = perm(1); perm(1) = temp;
rot(1) = rot(1) + 1
var j = 1
while (j < n - 1 && rot(j) > j) {
rot(j) = 0
j = j + 1
k = 0
while (k < j) {
temp = perm(k); perm(k) = perm(k + 1); perm(k + 1) = temp;
k = k + 1
}
rot(j) = rot(j) + 1
}
}
Console.println("Pfannkuchen(" + n + ") = " + maxFlips)
}
}
Other Scala examples (source code examples)Here is a short list of links related to this Scala fannkuch.scala-2.scala source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.