Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
41
Task/Damm-algorithm/AppleScript/damm-algorithm-1.applescript
Normal file
41
Task/Damm-algorithm/AppleScript/damm-algorithm-1.applescript
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
-- Return a check digit value for the given integer value or numeric string.
|
||||
-- The result is 0 if the input's last digit is already a valid check digit for it.
|
||||
on damm(n)
|
||||
set digits to {n mod 10}
|
||||
set n to n div 10
|
||||
repeat until (n is 0)
|
||||
set beginning of digits to n mod 10
|
||||
set n to n div 10
|
||||
end repeat
|
||||
|
||||
script o
|
||||
property 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}
|
||||
end script
|
||||
set interim to 0
|
||||
repeat with d in digits
|
||||
set interim to item (interim * 10 + d + 1) of o's table -- AppleScript indices are 1-based.
|
||||
end repeat
|
||||
|
||||
return interim
|
||||
end damm
|
||||
|
||||
-- Task code:
|
||||
local testNumbers, possibilities, output, n
|
||||
set testNumbers to {5724, 57240, 572400, 87591, 100}
|
||||
-- Include a number with a check digit actually generated by the handler.
|
||||
tell (random number 1000000) to set end of testNumbers to it * 10 + (my damm(it))
|
||||
set possibilities to {" is invalid", " is valid"}
|
||||
set output to {}
|
||||
repeat with n in testNumbers
|
||||
set end of output to (n as text) & item (((damm(n) is 0) as integer) + 1) of possibilities
|
||||
end repeat
|
||||
return output
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"5724 is valid", "57240 is valid", "572400 is valid", "87591 is invalid", "100 is invalid", "3922446 is valid"}
|
||||
Loading…
Add table
Add a link
Reference in a new issue