diff options
| author | Abigail <abigail@abigail.be> | 2021-11-25 20:53:56 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2021-11-25 20:53:56 +0100 |
| commit | a6b407536002f1f2d000cec3d5519a6446aa1121 (patch) | |
| tree | df6bca6aec287a859e7bd97ff16f1a7cbb90f632 | |
| parent | 0c6f22ef70f5f2ce903f7195d8efb2af2ebbe8c4 (diff) | |
| download | perlweeklychallenge-club-a6b407536002f1f2d000cec3d5519a6446aa1121.tar.gz perlweeklychallenge-club-a6b407536002f1f2d000cec3d5519a6446aa1121.tar.bz2 perlweeklychallenge-club-a6b407536002f1f2d000cec3d5519a6446aa1121.zip | |
R solution for week 135, part 2
| -rw-r--r-- | challenge-135/abigail/README.md | 1 | ||||
| -rw-r--r-- | challenge-135/abigail/r/ch-2.r | 36 |
2 files changed, 37 insertions, 0 deletions
diff --git a/challenge-135/abigail/README.md b/challenge-135/abigail/README.md index 8d165353e3..c6b1e98bb6 100644 --- a/challenge-135/abigail/README.md +++ b/challenge-135/abigail/README.md @@ -28,6 +28,7 @@ * [Node.js](node/ch-2.js) * [Perl](perl/ch-2.pl) * [Python](python/ch-2.py) +* [R](r/ch-2.r) * [Ruby](ruby/ch-2.rb) * [Scheme](scheme/ch-2.scm) * [Tcl](tcl/ch-2.tcl) diff --git a/challenge-135/abigail/r/ch-2.r b/challenge-135/abigail/r/ch-2.r new file mode 100644 index 0000000000..611ca95bce --- /dev/null +++ b/challenge-135/abigail/r/ch-2.r @@ -0,0 +1,36 @@ +# +# See ../README.md +# + +# +# Run as: Rscript ch-2.r < input-file +# + +ord.0 <- as.integer (charToRaw ("0")) +ord.9 <- as.integer (charToRaw ("9")) +ord.A <- as.integer (charToRaw ("A")) +w <- c (1, 3, 1, 7, 3, 9, 1) + +stdin <- file ('stdin', 'r') +repeat { + n <- readLines (stdin, n = 1) + if (length (n) == 0) { + break + } + valid <- 1 + c <- grep ("^[0-9BCDFGHJKLMNPQRSTVWXYZ]{6}[0-9]$", n) + if (length (c) == 0) { + cat ("0\n") + next + } + + check <- 0 + index <- 0 + for (char in strsplit (n, split = "") [[1]]) { + a <- as.integer (charToRaw (char)) + a <- a - (if (a <= ord.9) ord.0 else ord.A) + index <- index + 1 + check <- check + a * w [index] + } + cat (if (check %% 10 == 0) 1 else 0, "\n") +} |
