diff options
| author | 冯昶 <fengchang@novel-supertv.com> | 2019-06-17 18:36:32 +0800 |
|---|---|---|
| committer | 冯昶 <fengchang@novel-supertv.com> | 2019-06-17 18:36:32 +0800 |
| commit | db68af58cd4f07ef269c867753caf75841d5bb73 (patch) | |
| tree | c943a8b229382ade8936edc19a90fce28b651707 | |
| parent | 3108eb9b454aa145f154dea0060c99097b1efe67 (diff) | |
| download | perlweeklychallenge-club-db68af58cd4f07ef269c867753caf75841d5bb73.tar.gz perlweeklychallenge-club-db68af58cd4f07ef269c867753caf75841d5bb73.tar.bz2 perlweeklychallenge-club-db68af58cd4f07ef269c867753caf75841d5bb73.zip | |
challenge 013 #1
| -rw-r--r-- | challenge-009/feng-chang/README | 1 | ||||
| -rwxr-xr-x | challenge-009/feng-chang/perl5/ch-1.pl | 16 | ||||
| -rwxr-xr-x | challenge-009/feng-chang/perl6/ch-1-one-liner.p6 | 4 | ||||
| -rwxr-xr-x | challenge-009/feng-chang/perl6/ch-1.p6 | 8 | ||||
| -rw-r--r-- | challenge-013/feng-chang/README | 1 | ||||
| -rwxr-xr-x | challenge-013/feng-chang/perl6/ch-1.p6 | 13 |
6 files changed, 43 insertions, 0 deletions
diff --git a/challenge-009/feng-chang/README b/challenge-009/feng-chang/README new file mode 100644 index 0000000000..74e56de3ed --- /dev/null +++ b/challenge-009/feng-chang/README @@ -0,0 +1 @@ +Solutions by Feng Chang. diff --git a/challenge-009/feng-chang/perl5/ch-1.pl b/challenge-009/feng-chang/perl5/ch-1.pl new file mode 100755 index 0000000000..a883e28946 --- /dev/null +++ b/challenge-009/feng-chang/perl5/ch-1.pl @@ -0,0 +1,16 @@ +#!/bin/env perl + +use Modern::Perl; +use List::Uniq ':all'; + +my $n = 101; +my $n2; + +while (1) { + $n2 = $n * $n; + last if @{ uniq sort split(//, $n2) } >= 5; + + ++$n; +} + +say "$n2 = $n * $n"; diff --git a/challenge-009/feng-chang/perl6/ch-1-one-liner.p6 b/challenge-009/feng-chang/perl6/ch-1-one-liner.p6 new file mode 100755 index 0000000000..7699bd89c8 --- /dev/null +++ b/challenge-009/feng-chang/perl6/ch-1-one-liner.p6 @@ -0,0 +1,4 @@ +#!/bin/env perl6 + +my $n = (101 ... *).map({ $_ if ($_ * $_).comb.unique.elems >= 5 }).[0]; +say $n * $n, " = $n * $n"; diff --git a/challenge-009/feng-chang/perl6/ch-1.p6 b/challenge-009/feng-chang/perl6/ch-1.p6 new file mode 100755 index 0000000000..1039d77b3d --- /dev/null +++ b/challenge-009/feng-chang/perl6/ch-1.p6 @@ -0,0 +1,8 @@ +#!/bin/env perl6 + +for (101 ... *) -> $n { + my int $n2 = $n * $n; + last if $n2.comb.unique.elems >= 5; + + LAST { say "$n2 = $n * $n" } +} diff --git a/challenge-013/feng-chang/README b/challenge-013/feng-chang/README new file mode 100644 index 0000000000..74e56de3ed --- /dev/null +++ b/challenge-013/feng-chang/README @@ -0,0 +1 @@ +Solutions by Feng Chang. diff --git a/challenge-013/feng-chang/perl6/ch-1.p6 b/challenge-013/feng-chang/perl6/ch-1.p6 new file mode 100755 index 0000000000..51e3da63df --- /dev/null +++ b/challenge-013/feng-chang/perl6/ch-1.p6 @@ -0,0 +1,13 @@ +#!/bin/env perl6 + +my $format = sub ($self) { sprintf '%04d/%02d/%02d', .year, .month, .day, given $self }; + +sub last-day-to-last-friday(Int $year, Int $month, Int $day) { + my Date $d = Date.new(sprintf("%04d-%02d-%02d", $year, $month, $day)); + $d -= ($d.day-of-week - 5) mod 7; +} + +sub MAIN(Int $year) { + my @last-days = 31, Date.new(year => $year).is-leap-year ?? 29 !! 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31; + (1 .. 12).map({ last-day-to-last-friday($year, $_, @last-days[$_ - 1]) })».clone(formatter => $format)».say; +} |
