aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Aberger <da@ixab.de>2022-04-28 16:56:42 +0200
committerDaniel Aberger <da@ixab.de>2022-04-28 17:13:21 +0200
commitff65becf7b552efa4bfc381020b85f449d1f3ef2 (patch)
tree3d1030a4c015ed2b285a1e05eb6d1fe8c4dc53e2
parent48ad360bd157332aba988b18409a912fa4ca8600 (diff)
downloadperlweeklychallenge-club-ff65becf7b552efa4bfc381020b85f449d1f3ef2.tar.gz
perlweeklychallenge-club-ff65becf7b552efa4bfc381020b85f449d1f3ef2.tar.bz2
perlweeklychallenge-club-ff65becf7b552efa4bfc381020b85f449d1f3ef2.zip
add week 162, ch-1 in Go
-rw-r--r--challenge-162/daniel-aberger/README2
-rw-r--r--challenge-162/daniel-aberger/go/ch-1.go43
2 files changed, 45 insertions, 0 deletions
diff --git a/challenge-162/daniel-aberger/README b/challenge-162/daniel-aberger/README
new file mode 100644
index 0000000000..67c2817654
--- /dev/null
+++ b/challenge-162/daniel-aberger/README
@@ -0,0 +1,2 @@
+Solutions by Daniel Aberger.
+
diff --git a/challenge-162/daniel-aberger/go/ch-1.go b/challenge-162/daniel-aberger/go/ch-1.go
new file mode 100644
index 0000000000..ef46a5d6f8
--- /dev/null
+++ b/challenge-162/daniel-aberger/go/ch-1.go
@@ -0,0 +1,43 @@
+package main
+
+import (
+ "fmt"
+ "os"
+ "strconv"
+)
+
+func main() {
+ input := os.Args[1]
+ isbn := make([]int, 0)
+ for _, r := range input {
+ i, err := strconv.Atoi(string(r))
+ if err != nil {
+ continue
+ }
+ isbn = append(isbn, i)
+ }
+ if len(isbn) < 12 || len(isbn) > 13 {
+ fmt.Println("ISBN malformed")
+ os.Exit(1)
+ }
+ sum := 0
+ for k, v := range isbn {
+ if k == 12 {
+ break
+ }
+ if k%2 == 1 {
+ sum += v * 3
+ } else {
+ sum += v
+ }
+ }
+ if len(isbn) == 13 {
+ if 10-sum%10 == isbn[12] {
+ fmt.Println("correct checksum!")
+ } else {
+ fmt.Println("incorrect checksum!")
+ }
+ } else {
+ fmt.Printf("checksum: %d\n", 10-sum%10)
+ }
+}