Advertisement
Guest User

Считалочка до 5 на F#

a guest
May 4th, 2014
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.56 KB | None | 0 0
  1. // Author: Xelez
  2.  
  3. let removeAt index input =
  4.   input
  5.   |> List.mapi (fun i el -> (i <> index, el))
  6.   |> List.filter fst |> List.map snd
  7.  
  8. let rec solve = function
  9. | ([x], index) -> x
  10. | (list, index) ->
  11.     let k = (index + 4) % (List.length list)
  12.     let newlist = list |> (removeAt k)
  13.     solve (newlist, k)
  14.  
  15. let main input =
  16.     solve (input, 0)
  17.  
  18. let rec calc_k = function
  19. | 1 -> 1
  20. | n ->
  21.     let rec_k = calc_k (n-1)
  22.     1 + (rec_k + 5 - 1) % n
  23.  
  24.  
  25. let checker input =
  26.     let k = input |> List.length |> calc_k
  27.     List.nth input (k-1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement