diff options
| -rw-r--r-- | challenge-135/abigail/awk/ch-2.awk | 12 | ||||
| -rw-r--r-- | challenge-135/abigail/bash/ch-2.sh | 7 | ||||
| -rw-r--r-- | challenge-135/abigail/node/ch-2.js | 6 |
3 files changed, 16 insertions, 9 deletions
diff --git a/challenge-135/abigail/awk/ch-2.awk b/challenge-135/abigail/awk/ch-2.awk index 8da795ccf7..f135044e49 100644 --- a/challenge-135/abigail/awk/ch-2.awk +++ b/challenge-135/abigail/awk/ch-2.awk @@ -9,12 +9,16 @@ # BEGIN { + ord_0 = 48 + ord_9 = 57 + ord_A = 65 + ord_Z = 90 split ("1 3 1 7 3 9 1", w, " ") - for (i = 48; i <= 57; i ++) { - c [sprintf ("%c", i)] = i - 48 + for (i = ord_0; i <= ord_9; i ++) { + c [sprintf ("%c", i)] = i - ord_0 } - for (i = 65; i <= 90; i ++) { - c [sprintf ("%c", i)] = i - 65 + for (i = ord_A; i <= ord_Z; i ++) { + c [sprintf ("%c", i)] = i - ord_A } } diff --git a/challenge-135/abigail/bash/ch-2.sh b/challenge-135/abigail/bash/ch-2.sh index 0cb9fca74f..71e4c172b8 100644 --- a/challenge-135/abigail/bash/ch-2.sh +++ b/challenge-135/abigail/bash/ch-2.sh @@ -12,6 +12,9 @@ set -f w=(1 3 1 7 3 9 1) +printf -v ord_0 %d "'0" +printf -v ord_A %d "'A" + while read line do if ((${#line} != 7)) then echo 0 @@ -25,8 +28,8 @@ do if ((${#line} != 7)) do char=${line:$i:1} printf -v ord %d "'$char" if [[ $char =~ [0-9] ]] - then ((value = ord - 48)) - else ((value = ord - 65)) + then ((value = ord - ord_0)) + else ((value = ord - ord_A)) fi ((check += ${w[i]} * value)) done diff --git a/challenge-135/abigail/node/ch-2.js b/challenge-135/abigail/node/ch-2.js index f91f2d9420..2bdbe79c28 100644 --- a/challenge-135/abigail/node/ch-2.js +++ b/challenge-135/abigail/node/ch-2.js @@ -22,9 +22,9 @@ let w = [1, 3, 1, 7, 3, 9, 1] else { let check = 0 for (let i = 0; i < 7; i ++) { - let value = line . charCodeAt (i) - value -= value <= 57 ? 48 : 65 - check += w [i] * value + let val = line . charCodeAt (i) + val -= (val <= "9" . charCodeAt (0) ? "0" : "A") . charCodeAt (0) + check += w [i] * val } console . log (check % 10 == 0 ? 1 : 0) } |
