Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
32
Task/Damm-algorithm/F-Sharp/damm-algorithm.fs
Normal file
32
Task/Damm-algorithm/F-Sharp/damm-algorithm.fs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
open System
|
||||
|
||||
let TABLE = [|
|
||||
[|0; 3; 1; 7; 5; 9; 8; 6; 4; 2|];
|
||||
[|7; 0; 9; 2; 1; 5; 4; 8; 6; 3|];
|
||||
[|4; 2; 0; 6; 8; 7; 1; 3; 5; 9|];
|
||||
[|1; 7; 5; 0; 9; 8; 3; 4; 2; 6|];
|
||||
[|6; 1; 2; 3; 0; 4; 5; 9; 7; 8|];
|
||||
[|3; 6; 7; 4; 2; 0; 9; 5; 8; 1|];
|
||||
[|5; 8; 6; 9; 7; 2; 0; 1; 3; 4|];
|
||||
[|8; 9; 4; 5; 3; 6; 2; 0; 1; 7|];
|
||||
[|9; 4; 3; 8; 6; 1; 7; 2; 0; 5|];
|
||||
[|2; 5; 8; 1; 4; 3; 6; 7; 9; 0|];
|
||||
|]
|
||||
|
||||
let damm str =
|
||||
let rec helper (v:string) interim =
|
||||
if v.Length = 0 then 0 = interim
|
||||
else helper (v.Substring(1)) (TABLE.[interim].[(int (v.[0])) - (int '0')])
|
||||
helper str 0
|
||||
|
||||
[<EntryPoint>]
|
||||
let main _ =
|
||||
let numbers = [|5724; 5727; 112946; 112949|]
|
||||
for number in numbers do
|
||||
let isValid = damm (number.ToString())
|
||||
if isValid then
|
||||
printfn "%6d is valid" number
|
||||
else
|
||||
printfn "%6d is invalid" number
|
||||
|
||||
0 // return an integer exit code
|
||||
Loading…
Add table
Add a link
Reference in a new issue