Damm algorithm: Difference between revisions
Content added Content deleted
(→{{header|jq}}: 112949) |
Not a robot (talk | contribs) (Add BCPL) |
||
Line 541: | Line 541: | ||
FAIL |
FAIL |
||
</pre> |
</pre> |
||
=={{header|BCPL}}== |
|||
<lang bcpl>get "libhdr" |
|||
let damm(ns) = valof |
|||
$( let dt = 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 idgt = 0 |
|||
for i=1 to ns%0 |
|||
test '0' <= ns%i <= '9' |
|||
do idgt := dt!(ns%i-'0' + 10*idgt) |
|||
or resultis false |
|||
resultis idgt = 0 |
|||
$) |
|||
let check(ns) be |
|||
writef("%S: %S*N", ns, damm(ns) -> "pass", "fail") |
|||
let start() be |
|||
$( check("5724") |
|||
check("5727") |
|||
check("112946") |
|||
check("112949") |
|||
$)</lang> |
|||
{{out}} |
|||
<pre>5724: pass |
|||
5727: fail |
|||
112946: pass |
|||
112949: fail</pre> |
|||
=={{header|C}}== |
=={{header|C}}== |