aboutsummaryrefslogtreecommitdiff
path: root/challenge-116
diff options
context:
space:
mode:
authorE7-87-83 <fungcheokyin@gmail.com>2021-06-16 21:13:20 +0800
committerE7-87-83 <fungcheokyin@gmail.com>2021-06-16 21:13:20 +0800
commit5e631f4b325d6ef41562ec1ef955e49e7da4ab75 (patch)
tree77cd0ba501ebc5d0c0fcb36764e55c98b4869b3c /challenge-116
parent1dd7eedea237292a3fb563ecff37d004c3bbc772 (diff)
parent0aa46d7e327eb82bd447279a1891f0d1873c46ff (diff)
downloadperlweeklychallenge-club-5e631f4b325d6ef41562ec1ef955e49e7da4ab75.tar.gz
perlweeklychallenge-club-5e631f4b325d6ef41562ec1ef955e49e7da4ab75.tar.bz2
perlweeklychallenge-club-5e631f4b325d6ef41562ec1ef955e49e7da4ab75.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-116')
-rw-r--r--challenge-116/abigail/README.md51
-rw-r--r--challenge-116/abigail/awk/ch-1.awk37
-rw-r--r--challenge-116/abigail/awk/ch-2.awk19
-rw-r--r--challenge-116/abigail/bash/ch-1.sh50
-rw-r--r--challenge-116/abigail/bash/ch-2.sh53
-rw-r--r--challenge-116/abigail/blog.txt1
-rw-r--r--challenge-116/abigail/blog1.txt1
-rw-r--r--challenge-116/abigail/c/ch-2.c35
-rw-r--r--challenge-116/abigail/lua/ch-1.lua39
-rw-r--r--challenge-116/abigail/lua/ch-2.lua22
-rw-r--r--challenge-116/abigail/node/ch-1.js41
-rw-r--r--challenge-116/abigail/node/ch-2.js26
-rw-r--r--challenge-116/abigail/perl/ch-1.pl68
-rw-r--r--challenge-116/abigail/perl/ch-2.pl108
-rw-r--r--challenge-116/abigail/python/ch-1.py33
-rw-r--r--challenge-116/abigail/python/ch-2.py23
-rw-r--r--challenge-116/abigail/ruby/ch-1.rb38
-rw-r--r--challenge-116/abigail/ruby/ch-2.rb21
-rw-r--r--challenge-116/abigail/t/ctest.ini13
-rw-r--r--challenge-116/abigail/t/input-1-13
-rw-r--r--challenge-116/abigail/t/input-1-24
-rw-r--r--challenge-116/abigail/t/input-2-13
-rw-r--r--challenge-116/abigail/t/input-2-23
-rw-r--r--challenge-116/abigail/t/output-1-1.exp3
-rw-r--r--challenge-116/abigail/t/output-1-2.exp4
-rw-r--r--challenge-116/abigail/t/output-2-1.exp3
-rw-r--r--challenge-116/abigail/t/output-2-2.exp3
-rw-r--r--challenge-116/adam-russell/blog.txt1
-rw-r--r--challenge-116/adam-russell/perl/ch-1.pl114
-rw-r--r--challenge-116/adam-russell/perl/ch-2.pl42
-rw-r--r--challenge-116/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-116/arne-sommer/perl/ch-1.pl65
-rwxr-xr-xchallenge-116/arne-sommer/perl/ch-2.pl30
-rwxr-xr-xchallenge-116/arne-sommer/perl/number-sequence-perl65
-rwxr-xr-xchallenge-116/arne-sommer/perl/number-sequence-test-perl41
-rwxr-xr-xchallenge-116/arne-sommer/perl/sum-of-squares-perl30
-rwxr-xr-xchallenge-116/arne-sommer/raku/ch-1.raku55
-rwxr-xr-xchallenge-116/arne-sommer/raku/ch-2.raku5
-rwxr-xr-xchallenge-116/arne-sommer/raku/number-sequence55
-rwxr-xr-xchallenge-116/arne-sommer/raku/number-sequence-test28
-rwxr-xr-xchallenge-116/arne-sommer/raku/number-sequence-zip54
-rwxr-xr-xchallenge-116/arne-sommer/raku/sum-of-squares13
-rwxr-xr-xchallenge-116/arne-sommer/raku/sum-of-squares-compact5
-rwxr-xr-xchallenge-116/arne-sommer/raku/sum-of-squares-wrong13
-rw-r--r--challenge-116/athanasius/perl/ch-1.pl178
-rw-r--r--challenge-116/athanasius/perl/ch-2.pl152
-rw-r--r--challenge-116/athanasius/raku/ch-1.raku149
-rw-r--r--challenge-116/athanasius/raku/ch-2.raku128
-rw-r--r--challenge-116/bob-lied/README4
-rw-r--r--challenge-116/bob-lied/perl/ch-1.pl88
-rw-r--r--challenge-116/bob-lied/perl/ch-2.pl64
-rw-r--r--challenge-116/colin-crain/blog.txt1
-rw-r--r--challenge-116/colin-crain/perl/ch-1.pl81
-rw-r--r--challenge-116/colin-crain/perl/ch-2.pl62
-rw-r--r--challenge-116/colin-crain/raku/ch-1.raku59
-rw-r--r--challenge-116/colin-crain/raku/ch-2.raku42
-rwxr-xr-xchallenge-116/cristian-heredia/perl/ch-2.pl44
-rwxr-xr-xchallenge-116/cristian-heredia/python/ch-2.py35
-rw-r--r--challenge-116/dave-jacoby/blog.txt1
-rw-r--r--challenge-116/dave-jacoby/perl/ch-1.pl60
-rw-r--r--challenge-116/dave-jacoby/perl/ch-2.pl21
-rw-r--r--challenge-116/duncan-c-white/README60
-rwxr-xr-xchallenge-116/duncan-c-white/perl/ch-1.pl72
-rwxr-xr-xchallenge-116/duncan-c-white/perl/ch-2.pl65
-rwxr-xr-xchallenge-116/feng-chang/raku/ch-1.raku18
-rwxr-xr-xchallenge-116/feng-chang/raku/ch-2.raku5
-rw-r--r--challenge-116/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-116/jaldhar-h-vyas/perl/ch-1.pl45
-rwxr-xr-xchallenge-116/jaldhar-h-vyas/perl/ch-2.pl28
-rwxr-xr-xchallenge-116/jaldhar-h-vyas/raku/ch-1.raku29
-rwxr-xr-xchallenge-116/jaldhar-h-vyas/raku/ch-2.raku8
-rw-r--r--challenge-116/james-smith/README.md10
-rw-r--r--challenge-116/james-smith/perl/ch-1.pl38
-rwxr-xr-xchallenge-116/jo-37/perl/ch-1.pl103
-rwxr-xr-xchallenge-116/jo-37/perl/ch-2.pl66
-rw-r--r--challenge-116/laurent-rosenfeld/blog.txt1
-rw-r--r--challenge-116/laurent-rosenfeld/perl/ch-1.pl36
-rw-r--r--challenge-116/laurent-rosenfeld/perl/ch-2.pl12
-rw-r--r--challenge-116/laurent-rosenfeld/raku/ch-1.raku18
-rw-r--r--challenge-116/laurent-rosenfeld/raku/ch-2.raku8
-rw-r--r--challenge-116/paulo-custodio/perl/ch-2.pl2
-rwxr-xr-xchallenge-116/perlboy1967/perl/ch-1.pl3
-rwxr-xr-xchallenge-116/perlboy1967/perl/ch-2.pl21
-rw-r--r--challenge-116/pete-houston/c/ch-2.c37
-rw-r--r--challenge-116/pete-houston/lua/ch-2.lua34
-rw-r--r--challenge-116/pete-houston/perl/ch-1.pl37
-rw-r--r--challenge-116/pete-houston/perl/ch-2.pl24
-rw-r--r--challenge-116/roger-bell-west/blog.txt1
-rw-r--r--challenge-116/tyler-wardhaugh/clojure/README.md20
-rw-r--r--challenge-116/tyler-wardhaugh/clojure/bb.edn78
-rw-r--r--challenge-116/tyler-wardhaugh/clojure/deps.edn3
-rw-r--r--challenge-116/tyler-wardhaugh/clojure/src/tw/weekly/c116/core.clj12
-rw-r--r--challenge-116/tyler-wardhaugh/clojure/src/tw/weekly/c116/t1.clj47
-rw-r--r--challenge-116/tyler-wardhaugh/clojure/src/tw/weekly/c116/t2.clj25
-rw-r--r--challenge-116/tyler-wardhaugh/clojure/test/tw/weekly/c116_test.clj17
-rw-r--r--challenge-116/ulrich-rieke/cpp/ch-2.cpp32
-rw-r--r--challenge-116/ulrich-rieke/haskell/ch-2.hs12
-rw-r--r--challenge-116/ulrich-rieke/perl/ch-1.pl91
-rw-r--r--challenge-116/ulrich-rieke/perl/ch-2.pl19
-rw-r--r--challenge-116/ulrich-rieke/raku/ch-2.raku17
-rw-r--r--challenge-116/wambash/raku/ch-1.raku28
-rw-r--r--challenge-116/wambash/raku/ch-2.raku20
-rw-r--r--challenge-116/wanderdoc/perl/ch-1.pl46
-rw-r--r--challenge-116/wanderdoc/perl/ch-2.pl38
-rw-r--r--challenge-116/wlmb/blog.txt1
-rwxr-xr-xchallenge-116/wlmb/perl/ch-1.pl95
-rwxr-xr-xchallenge-116/wlmb/perl/ch-2.pl15
107 files changed, 3781 insertions, 108 deletions
diff --git a/challenge-116/abigail/README.md b/challenge-116/abigail/README.md
index 96adeb6d8f..eccf1a6b3b 100644
--- a/challenge-116/abigail/README.md
+++ b/challenge-116/abigail/README.md
@@ -1,27 +1,29 @@
# Solutions by Abigail
-## [String Chain](https://perlweeklychallenge.org/blog/perl-weekly-challenge-115/#TASK1)
+## [Number Sequence](https://perlweeklychallenge.org/blog/perl-weekly-challenge-116/#TASK1)
-> You are given an array of strings.
+> You are given a number `$N` >= `10`.
>
-> Write a script to find out if the given strings can be chained
-> to form a circle. Print `1` if found otherwise `0`.
->
-> > A string `$S` can be put before another string `$T` in circle
-> > if the last character of `$S` is same as first character of `$T`.
+> Write a script to split the given number such that the difference
+> between two consecutive numbers is always 1 and it shouldn't have
+> leading `0`.
+>
+> Print the given number if it impossible to split the number.
### Example
~~~~
-Input: @S = ("abc", "dea", "cd")
-Output: 1 as we can form circle e.g. "abc", "cd", "dea".
+Input: $N = 1234
+Output: 1,2,3,4
+
+Input: $N = 91011
+Output: 9,10,11
-Input: @S = ("ade", "cbd", "fgh")
-Output: 0 as we can't form circle.
+Input: $N = 10203
+Output: 10203 as it is impossible to split satisfying the conditions.
~~~~
### Solutions
* [AWK](awk/ch-1.awk)
* [Bash](bash/ch-1.sh)
-* [C](c/ch-1.c)
* [Lua](lua/ch-1.lua)
* [Node.js](node/ch-1.js)
* [Perl](perl/ch-1.pl)
@@ -29,25 +31,26 @@ Output: 0 as we can't form circle.
* [Ruby](ruby/ch-1.rb)
### Blog
-[String Chain](https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-115-1.html)
+[Number Sequence](https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-116-1.html)
-## [Largest Multiple](https://perlweeklychallenge.org/blog/perl-weekly-challenge-115/#TASK2)
+## [Sum of Squares](https://perlweeklychallenge.org/blog/perl-weekly-challenge-115/#TASK2)
-> You are given a list of positive integers `(0-9)`, single digit.
+> You are given a number $N >= 10.
>
-> Write a script to find the largest multiple of `2` that can be
-> formed from the list.
+> Write a script to find out if the given number `$N` is such that
+> sum of squares of all digits is a perfect square.
+> Print `1` if it is otherwise `0`.
### Examples
~~~~
-Input: @N = (1, 0, 2, 6)
-Output: 6210
+Input: $N = 34
+Ouput: 1 as 3^2 + 4^2 => 9 + 16 => 25 => 5^2
-Input: @N = (1, 4, 2, 8)
-Output: 8412
+Input: $N = 50
+Output: 1 as 5^2 + 0^2 => 25 + 0 => 25 => 5^2
-Input: @N = (4, 1, 7, 6)
-Output: 7614
+Input: $N = 52
+Output: 0 as 5^2 + 2^2 => 25 + 4 => 29
~~~~
### Solutions
@@ -61,4 +64,4 @@ Output: 7614
* [Ruby](ruby/ch-2.rb)
### Blog
-[Largest Multiple](https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-115-2.html)
+[Sum of Squares](https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-116-2.html)
diff --git a/challenge-116/abigail/awk/ch-1.awk b/challenge-116/abigail/awk/ch-1.awk
new file mode 100644
index 0000000000..5e0379efb8
--- /dev/null
+++ b/challenge-116/abigail/awk/ch-1.awk
@@ -0,0 +1,37 @@
+#!/usr/bin/awk
+
+#
+# See ../README.md
+#
+
+#
+# Run as: awk -f ch-1.awk < input-file
+#
+
+function make_sequence (string, start) {
+ if (start == string) {
+ return start
+ }
+ if (1 == index (string, start)) {
+ tail = substr (string, length (start) + 1)
+ result = make_sequence(tail, start + 1)
+ if (result == "") {
+ result = make_sequence(tail, start - 1)
+ }
+ if (result == "") {
+ return ""
+ }
+ return start "," result
+ }
+ return ""
+}
+
+{
+ for (i = 1; i <= length ($1); i ++) {
+ result = make_sequence($1, substr ($1, 1, i))
+ if (result != "") {
+ print result
+ next
+ }
+ }
+}
diff --git a/challenge-116/abigail/awk/ch-2.awk b/challenge-116/abigail/awk/ch-2.awk
new file mode 100644
index 0000000000..6353b61eb8
--- /dev/null
+++ b/challenge-116/abigail/awk/ch-2.awk
@@ -0,0 +1,19 @@
+#!/usr/bin/awk
+
+#
+# See ../README.md
+#
+
+#
+# Run as: awk -f ch-2.awk < input-file
+#
+
+{
+ sum_of_squares = 0
+ for (i = 1; i <= length ($1); i ++) {
+ # Sum of squares
+ sum_of_squares += substr ($1, i, 1) * substr ($1, i, 1)
+ }