def reverseArray[T](n:Int, arr:Array[T])={ var j = -1 val size = arr size var set = Set[Int]() def hasMoveAll()={ set.size == arr.size } while(!hasMoveAll){ j += 1 println("j = " + j) var t = arr(j%size) var i = j while((i+n) % size != 0){ println("set : " + set) println((i%size)+" <- "+(i+n)%size) arr(i%size) = arr((i+n)%size) set += (i+n)%size i += n } set += 0 arr(i%size) = t } arr }