aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-135/abigail/awk/ch-2.awk12
-rw-r--r--challenge-135/abigail/bash/ch-2.sh7
-rw-r--r--challenge-135/abigail/node/ch-2.js6
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)
}