diff options
| author | Mohammad Sajid Anwar <mohammad.anwar@yahoo.com> | 2024-09-28 10:08:08 +0100 |
|---|---|---|
| committer | Mohammad Sajid Anwar <mohammad.anwar@yahoo.com> | 2024-09-28 10:08:08 +0100 |
| commit | 3984ac2065eba1bfebb96e7395b267948d1caf9e (patch) | |
| tree | 618e531c33fe48d625d05f0f0e24b3fc3270cd92 | |
| parent | 3b9ae8e17f9ba3d1fb2a4f612e0c4e2b271f6304 (diff) | |
| download | perlweeklychallenge-club-3984ac2065eba1bfebb96e7395b267948d1caf9e.tar.gz perlweeklychallenge-club-3984ac2065eba1bfebb96e7395b267948d1caf9e.tar.bz2 perlweeklychallenge-club-3984ac2065eba1bfebb96e7395b267948d1caf9e.zip | |
- Added solutions by Ulrich Rieke.
27 files changed, 2946 insertions, 2745 deletions
diff --git a/challenge-288/ulrich-rieke/cpp/ch-1.cpp b/challenge-288/ulrich-rieke/cpp/ch-1.cpp new file mode 100755 index 0000000000..4551c7edca --- /dev/null +++ b/challenge-288/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,37 @@ +#include <iostream>
+#include <string>
+#include <algorithm>
+#include <cstdlib>
+
+bool isPalindrome( int number ) {
+ auto numberstring = std::to_string( number ) ;
+ auto reversed { numberstring } ;
+ std::reverse( reversed.begin( ) , reversed.end( ) ) ;
+ return reversed == numberstring ;
+}
+
+int main( ) {
+ std::cout << "Please enter a number!\n" ;
+ int number ;
+ std::cin >> number ;
+ int current = number - 1 ;
+ while ( ! isPalindrome( current ) )
+ current-- ;
+ auto minusnum = current ;
+ auto minusdiff = std::abs( minusnum - number ) ;
+ current = number + 1 ;
+ while ( ! isPalindrome( current ) )
+ current++ ;
+ auto plusnum = current ;
+ auto plusdiff = std::abs( plusnum - number ) ;
+ if ( plusdiff == minusdiff )
+ std::cout << minusnum << '\n' ;
+ else {
+ if ( plusdiff < minusdiff )
+ std::cout << plusnum << '\n' ;
+ else
+ std::cout << minusnum << '\n' ;
+ }
+ return 0 ;
+}
+
diff --git a/challenge-288/ulrich-rieke/haskell/ch-1.hs b/challenge-288/ulrich-rieke/haskell/ch-1.hs new file mode 100755 index 0000000000..71319faf31 --- /dev/null +++ b/challenge-288/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,25 @@ +module Challenge288
+ where
+
+isPalindrome :: Int -> Bool
+isPalindrome n = s == reverse s
+ where
+ s = show n
+
+solution :: String -> Int
+solution s =
+ let number = read s
+ lowerPali = until isPalindrome pred (number - 1 )
+ upperPali = until isPalindrome succ (number + 1)
+ minDiff = abs( lowerPali - number )
+ plusDiff = abs( upperPali - number )
+ in if minDiff == plusDiff then lowerPali
+ else
+ if minDiff < plusDiff then lowerPali else upperPali
+
+main :: IO ( )
+main = do
+ putStrLn "Enter a number!"
+ number <- getLine
+ print $ solution number
+
diff --git a/challenge-288/ulrich-rieke/perl/ch-1.pl b/challenge-288/ulrich-rieke/perl/ch-1.pl new file mode 100755 index 0000000000..e4b7cd3d27 --- /dev/null +++ b/challenge-288/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,42 @@ +#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+sub isPalindrome {
+ my $number = shift ;
+ if ( $number eq join( '' , reverse( split( // , $number )))) {
+ return 1 ;
+ }
+ else {
+ return 0 ;
+ }
+}
+
+say "Enter a number!" ;
+my $number = <STDIN> ;
+chomp $number ;
+my $current = $number ;
+$current-- ;
+while ( not ( isPalindrome( $current ) ) ) {
+ $current-- ;
+}
+my $minusnum = $current ;
+my $minusdiff = abs( $minusnum - $number ) ;
+$current = $number + 1 ;
+while ( not ( isPalindrome( $current ) ) ) {
+ $current++ ;
+}
+my $plusnum = $current ;
+my $plusdiff = abs( $plusnum - $number ) ;
+if ( $plusdiff == $minusdiff ) {
+ say $minusnum ;
+}
+else {
+ if ( $plusdiff < $minusdiff ) {
+ say $plusnum ;
+ }
+ else {
+ say $minusnum ;
+ }
+}
diff --git a/challenge-288/ulrich-rieke/raku/ch-1.raku b/challenge-288/ulrich-rieke/raku/ch-1.raku new file mode 100755 index 0000000000..0ccd1a9070 --- /dev/null +++ b/challenge-288/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,34 @@ +use v6 ;
+
+sub isPalindrome( Int $number is copy ) {
+ my $numberstring = ~$number ;
+ return $numberstring eq $numberstring.comb.reverse.join ;
+}
+
+say "Enter a number!" ;
+my $num = $*IN.get ;
+my Int $number = $num.Int ;
+my Int $current = $number ;
+repeat {
+ $current--
+} until ( isPalindrome( $current ) ) ;
+
+my $minusnum = ~$current ;
+my $minusdiff = ( $number - $current ).abs ;
+$current = $number ;
+repeat {
+ $current++ ;
+} until ( isPalindrome( $current ) ) ;
+my $plusnum = ~$current ;
+my $plusdiff = ( $number - $current ).abs ;
+if ( $plusdiff == $minusdiff ) {
+ say $minusnum ;
+}
+else {
+ if ( $plusdiff < $minusdiff ) {
+ say $plusnum ;
+ }
+ else {
+ say $minusnum ;
+ }
+}
diff --git a/challenge-288/ulrich-rieke/rust/ch-1.rs b/challenge-288/ulrich-rieke/rust/ch-1.rs new file mode 100755 index 0000000000..d9461ff59a --- /dev/null +++ b/challenge-288/ulrich-rieke/rust/ch-1.rs @@ -0,0 +1,44 @@ +use std::io ; + +fn is_palindrome( number : i32 ) -> bool { + let target : String = number.to_string( ) ; + let mut reversed : String = String::new( ) ; + let characters : &str = target.as_str( ) ; + let mut iter = characters.chars( ).rev( ) ; + while let Some( c ) = iter.next( ) { + reversed.push( c ) ; + } + target == reversed +} + +fn main() { + println!("Enter a number!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let entered_line : &str = inline.as_str( ).trim( ) ; + let number : i32 = entered_line.parse::<i32>( ).unwrap( ) ; + let mut current : i32 = number ; + current -= 1 ; + while ! is_palindrome( current ) { + current -= 1 ; + } + let minus_diff : i32 = (current - number).abs( ) ; + let minusnum = current ; + current = number + 1 ; + while ! is_palindrome( current ) { + current += 1 ; + } + let plus_diff : i32 = (current - number).abs( ) ; + let plusnum = current ; + if minus_diff == plus_diff { + println!("{:?}" , minusnum.to_string( ) ) ; + } + else { + if minus_diff < plus_diff { + println!("{:?}" , minusnum.to_string( ) ) ; + } + else { + println!("{:?}" , plusnum.to_string( ) ) ; + } + } +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 0a11910a64..b3772c5c06 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,8 +1,154 @@ { + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } + }, + "tooltip" : { + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", + "followPointer" : 1 + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "legend" : { + "enabled" : 0 + }, + "subtitle" : { + "text" : "[Champions: 21] Last updated at 2024-09-28 09:03:30 GMT" + }, + "chart" : { + "type" : "column" + }, + "title" : { + "text" : "The Weekly Challenge - 288" + }, + "xAxis" : { + "type" : "category" + }, + "series" : [ + { + "colorByPoint" : 1, + "name" : "The Weekly Challenge - 288", + "data" : [ + { + "drilldown" : "Andre Ploger", + "name" : "Andre Ploger", + "y" : 3 + }, + { + "name" : "Arne Sommer", + "drilldown" : "Arne Sommer", + "y" : 3 + }, + { + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby", + "y" : 2 + }, + { + "y" : 2, + "name" : "David Ferrone", + "drilldown" : "David Ferrone" + }, + { + "y" : 2, + "drilldown" : "E. Choroba", + "name" : "E. Choroba" + }, + { + "y" : 2, + "name" : "Feng Chang", + "drilldown" : "Feng Chang" + }, + { + "name" : "Jorg Sommrey", + "drilldown" : "Jorg Sommrey", + "y" : 3 + }, + { + "y" : 2, + "drilldown" : "Kjetil Skotheim", + "name" : "Kjetil Skotheim" + }, + { + "y" : 3, + "name" : "Laurent Rosenfeld", + "drilldown" : "Laurent Rosenfeld" + }, + { + "name" : "Lubos Kolouch", + "drilldown" : "Lubos Kolouch", + "y" : 2 + }, + { + "y" : 5, + "name" : "Luca Ferrari", + "drilldown" : "Luca Ferrari" + }, + { + "name" : "Packy Anderson", + "drilldown" : "Packy Anderson", + "y" : 5 + }, + { + "name" : "Paulo Custodio", + "drilldown" : "Paulo Custodio", + "y" : 2 + }, + { + "y" : 3, + "drilldown" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith" + }, + { + "y" : 2, + "name" : "Reinier Maliepaard", + "drilldown" : "Reinier Maliepaard" + }, + { + "y" : 3, + "drilldown" : "Robbie Hatley", + "name" : "Robbie Hatley" + }, + { + "name" : "Roger Bell_West", + "drilldown" : "Roger Bell_West", + "y" : 4 + }, + { + "y" : 3, + "drilldown" : "Torgny Lyon", + "name" : "Torgny Lyon" + }, + { + "y" : 2, + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke" + }, + { + "y" : 3, + "name" : "W. Luis Mochan", + "drilldown" : "W. Luis Mochan" + }, + { + "name" : "Wanderdoc", + "drilldown" : "Wanderdoc", + "y" : 1 + } + ] + } + ], "drilldown" : { "series" : [ { - "id" : "Andre Ploger", "data" : [ [ "Perl", @@ -13,10 +159,10 @@ 1 ] ], - "name" : "Andre Ploger" + "name" : "Andre Ploger", + "id" : "Andre Ploger" }, { - "name" : "Arne Sommer", "data" : [ [ "Raku", @@ -27,9 +173,11 @@ 1 ] ], + "name" : "Arne Sommer", "id" : "Arne Sommer" }, { + "id" : "Dave Jacoby", "data" : [ [ "Perl", @@ -40,40 +188,40 @@ 1 ] ], - "name" : "Dave Jacoby", - "id" : "Dave Jacoby" + "name" : "Dave Jacoby" }, { - "id" : "David Ferrone", - "name" : "David Ferrone", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "David Ferrone", + "id" : "David Ferrone" }, { - "name" : "E. Choroba", + "id" : "E. Choroba", "data" : [ [ "Perl", 2 ] ], - "id" : "E. Choroba" + "name" : "E. Choroba" }, { "id" : "Feng Chang", - "name" : "Feng Chang", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Feng Chang" }, { + "id" : "Jorg Sommrey", "data" : [ [ "Perl", @@ -84,20 +232,20 @@ 1 ] ], - "name" : "Jorg Sommrey", - "id" : "Jorg Sommrey" + "name" : "Jorg Sommrey" }, { "id" : "Kjetil Skotheim", - "name" : "Kjetil Skotheim", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Kjetil Skotheim" }, { + "name" : "Laurent Rosenfeld", "data" : [ [ "Perl", @@ -112,20 +260,20 @@ 1 ] ], - "name" : "Laurent Rosenfeld", "id" : "Laurent Rosenfeld" }, { + "id" : "Lubos Kolouch", "name" : "Lubos Kolouch", "data" : [ [ "Perl", 2 ] - ], - "id" : "Lubos Kolouch" + ] }, { + "id" : "Luca Ferrari", "data" : [ [ "Raku", @@ -136,11 +284,9 @@ 3 ] ], - "name" : "Luca Ferrari", - "id" : "Luca Ferrari" + "name" : "Luca Ferrari" }, { - "id" : "Packy Anderson", "data" : [ [ "Perl", @@ -155,17 +301,18 @@ 1 ] ], - "name" : "Packy Anderson" + "name" : "Packy Anderson", + "id" : "Packy Anderson" }, { "id" : "Paulo Custodio", - "name" : "Paulo Custodio", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Paulo Custodio" }, { "data" : [ @@ -182,6 +329,7 @@ "id" : "Peter Campbell Smith" }, { + "id" : "Reinier Maliepaard", "name" : "Reinier Maliepaard", "data" : [ [ @@ -192,8 +340,7 @@ "Blog", 1 ] - ], - "id" : "Reinier Maliepaard" + ] }, { "id" : "Robbie Hatley", @@ -210,6 +357,7 @@ "name" : "Robbie Hatley" }, { + "name" : "Roger Bell_West", "data" : [ [ "Perl", @@ -220,10 +368,11 @@ 2 ] ], - "name" : "Roger Bell_West", "id" : "Roger Bell_West" }, { + "id" : "Torgny Lyon", + "name" : "Torgny Lyon", "data" : [ [ "Perl", @@ -233,12 +382,25 @@ "Blog", 1 ] + ] + }, + { + "name" : "Ulrich Rieke", + "data" : [ + [ + "Perl", + 1 + ], + [ + "Raku", + 1 + ] ], - "name" : "Torgny Lyon", - "id" : "Torgny Lyon" + "id" : "Ulrich Rieke" }, { "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -248,161 +410,18 @@ "Blog", 1 ] - ], - "name" : "W. Luis Mochan" + ] }, { + "id" : "Wanderdoc", + "name" : "Wanderdoc", "data" : [ [ "Perl", 1 ] - ], - "name" : "Wanderdoc", - "id" : "Wanderdoc" + ] } ] - }, - "title" : { - "text" : "The Weekly Challenge - 288" - }, - "series" : [ - { - "colorByPoint" : 1, - "name" : "The Weekly Challenge - 288", - "data" : [ - { - "y" : 3, - "name" : "Andre Ploger", - "drilldown" : "Andre Ploger" - }, - { - "y" : 3, - "name" : "Arne Sommer", - "drilldown" : "Arne Sommer" - }, - { - "drilldown" : "Dave Jacoby", - "name" : "Dave Jacoby", - "y" : 2 - }, - { - "drilldown" : "David Ferrone", - "name" : "David Ferrone", - "y" : 2 - }, - { - "y" : 2, - "name" : "E. Choroba", - "drilldown" : "E. Choroba" - }, - { - "name" : "Feng Chang", - "drilldown" : "Feng Chang", - "y" : 2 - }, - { - "drilldown" : "Jorg Sommrey", - "name" : "Jorg Sommrey", - "y" : 3 - }, - { - "drilldown" : "Kjetil Skotheim", - "name" : "Kjetil Skotheim", - "y" : 2 - }, - { - "y" : 3, - "drilldown" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld" - }, - { - "y" : 2, - "name" : "Lubos Kolouch", - "drilldown" : "Lubos Kolouch" - }, - { - "y" : 5, - "name" : "Luca Ferrari", - "drilldown" : "Luca Ferrari" - }, - { - "y" : 5, - "name" : "Packy Anderson", - "drilldown" : "Packy Anderson" - }, - { - "name" : "Paulo Custodio", - "drilldown" : "Paulo Custodio", - "y" : 2 - }, - { - "y" : 3, - "name" : "Peter Campbell Smith", - "drilldown" : "Peter Campbell Smith" - }, - { - "y" : 2, - "drilldown" : "Reinier Maliepaard", - "name" : "Reinier Maliepaard" - }, - { - "y" : 3, - "drilldown" : "Robbie Hatley", - "name" : "Robbie Hatley" - }, - { - "name" : "Roger Bell_West", - "drilldown" : "Roger Bell_West", - "y" : 4 - }, - { - "name" : "Torgny Lyon", - "drilldown" : "Torgny Lyon", - "y" : 3 - }, - { - "y" : 3, - "name" : "W. Luis Mochan", - "drilldown" : "W. Luis Mochan" - }, - { - "drilldown" : "Wanderdoc", - "name" : "Wanderdoc", - "y" : 1 - } - ] - } - ], - "subtitle" : { - "text" : "[Champions: 20] Last updated at 2024-09-27 16:17:48 GMT" - }, - "chart" : { - "type" : "column" - }, - "legend" : { - "enabled" : 0 - }, - "tooltip" : { - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", - "followPointer" : 1, - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, - "xAxis" : { - "type" : "category" } } diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json index 717b6f4c94..ef157b759d 100644 --- a/stats/pwc-language-breakdown-2019.json +++ b/stats/pwc-language-breakdown-2019.json @@ -1,4 +1,18 @@ { + "tooltip" : { + "headerFormat" : "<span style=\"font-size:11px\"></span>", + "followPointer" : "true", + "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>" + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, "legend" : { "enabled" : "false" }, @@ -7,41 +21,37 @@ "text" : "Total Solutions" } }, - "tooltip" : { - "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", - "followPointer" : "true", - "headerFormat" : "<span style=\"font-size:11px\"></span>" + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2024-09-28 09:03:30 GMT" }, "xAxis" : { "type" : "category" }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } + "title" : { + "text" : "The Weekly Challenge Language" + }, + "chart" : { + "type" : "column" }, "series" : [ { "name" : "The Weekly Challenge Languages", + "colorByPoint" : "true", "data" : [ { - "name" : "041", "drilldown" : "041", + "name" : "041", "y" : 80 }, { + "y" : 77, "name" : "040", - "drilldown" : "040", - "y" : 77 + "drilldown" : "040" }, { - "drilldown" : "039", + "y" : 68, "name" : "039", - "y" : 68 + "drilldown" : "039" }, { "y" : 74, @@ -49,19 +59,19 @@ "drilldown" : "038" }, { - "name" : "037", + "y" : 70, "drilldown" : "037", - "y" : 70 + "name" : "037" }, { - "y" : 70, "name" : "036", - "drilldown" : "036" + "drilldown" : "036", + "y" : 70 }, { - "y" : 68, "name" : "035", - "drilldown" : "035" + "drilldown" : "035", + "y" : 68 }, { "y" : 70, @@ -69,9 +79,9 @@ "drilldown" : "034" }, { - "y" : 113, "name" : "033", - "drilldown" : "033" + "drilldown" : "033", + "y" : 113 }, { "y" : 97, @@ -89,29 +99,29 @@ "y" : 120 }, { + "y" : 83, "name" : "029", - "drilldown" : "029", - "y" : 83 + "drilldown" : "029" }, { - "y" : 82, "drilldown" : "028", - "name" : "028" + "name" : "028", + "y" : 82 }, { - "y" : 64, + "drilldown" : "027", "name" : "027", - "drilldown" : "027" + "y" : 64 }, { + "y" : 75, "name" : "026", - "drilldown" : "026", - "y" : 75 + "drilldown" : "026" }, { + "y" : 62, "drilldown" : "025", - "name" : "025", - "y" : 62 + "name" : "025" }, { "y" : 77, @@ -120,8 +130,8 @@ }, { "y" : 88, - "drilldown" : "023", - "name" : "023" + "name" : "023", + "drilldown" : "023" }, { "y" : 72, @@ -129,14 +139,14 @@ "drilldown" : "022" }, { + "y" : 72, "drilldown" : "021", - "name" : "021", - "y" : 72 + "name" : "021" }, { - "name" : "020", + "y" : 100, "drilldown" : "020", - "y" : 100 + "name" : "020" }, { "y" : 101, @@ -145,8 +155,8 @@ }, |
