diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-09-13 22:15:20 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-13 22:15:20 +0100 |
| commit | 7451d93316bf8f64b593f8884423e6b113da5892 (patch) | |
| tree | 30e07ec7f20e00c63c8800bd847d06a19c95f1c7 | |
| parent | 8860d26113418e8804d5ea4aa55c03c7a7240a8d (diff) | |
| parent | 6f14ead5a192a12ec4eed99e0c48a61d936bba99 (diff) | |
| download | perlweeklychallenge-club-7451d93316bf8f64b593f8884423e6b113da5892.tar.gz perlweeklychallenge-club-7451d93316bf8f64b593f8884423e6b113da5892.tar.bz2 perlweeklychallenge-club-7451d93316bf8f64b593f8884423e6b113da5892.zip | |
Merge pull request #2274 from adamcrussell/challenge-077
Challenge 077
| -rw-r--r-- | challenge-077/adam-russell/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-077/adam-russell/perl/ch-1.pl | 45 | ||||
| -rw-r--r-- | challenge-077/adam-russell/perl/ch-2.pl | 79 | ||||
| -rw-r--r-- | challenge-077/adam-russell/words | 69903 |
4 files changed, 125 insertions, 69903 deletions
diff --git a/challenge-077/adam-russell/blog.txt b/challenge-077/adam-russell/blog.txt new file mode 100644 index 0000000000..12184efc93 --- /dev/null +++ b/challenge-077/adam-russell/blog.txt @@ -0,0 +1 @@ +http://www.rabbitfarm.com/cgi-bin/blosxom/2020/09/13#pwc077 diff --git a/challenge-077/adam-russell/perl/ch-1.pl b/challenge-077/adam-russell/perl/ch-1.pl new file mode 100644 index 0000000000..de9eee9cd1 --- /dev/null +++ b/challenge-077/adam-russell/perl/ch-1.pl @@ -0,0 +1,45 @@ +use strict; +use warnings; +## +# You are given a positive integer $N. +# Write a script to find out all possible combination +# of Fibonacci Numbers required to get $N on addition. +# Repeated numbers are not allowed. Print 0 if none found. +## +sub nearest_fibonacci{ + my($n) = @_; + my @f = (1, 1); + while($f[@f - 1] <= $n){ + my $f = $f[@f - 1] + $f[@f - 2]; + push @f, $f; + } + pop @f; + return @f; +} + +sub fibonacci_sum{ + my($n, $fibonacci) = @_; + my @sum_terms; + my $number_terms = @{$fibonacci}; + for my $i (0 .. (2**$number_terms - 1)){ + my $b = sprintf("%0" . $number_terms . "b", $i); + my @b = split(//, $b); + my @f; + for my $i (0 .. (@b - 1)){ + push @f, $fibonacci->[$i] if $b[$i] == 1; + } + my $sum = unpack("%32I*", pack("I*", @f)); + push @sum_terms, \@f if $sum == $n; + } + return @sum_terms; +} + +MAIN:{ + my $n = $ARGV[0]; + my @f = nearest_fibonacci($n); + my @sum_terms = fibonacci_sum($n, \@f); + print "No Fibonacci Terms sum to $n.\n" if !@sum_terms; + for my $term (@sum_terms){ + print join(" + ", @{$term}) . " = $n\n"; + } +}
\ No newline at end of file diff --git a/challenge-077/adam-russell/perl/ch-2.pl b/challenge-077/adam-russell/perl/ch-2.pl new file mode 100644 index 0000000000..d5103086ef --- /dev/null +++ b/challenge-077/adam-russell/perl/ch-2.pl @@ -0,0 +1,79 @@ +use strict; +use warnings; +## +# You are given m x n character matrix consists of O and X only. +# Write a script to count the total number of X surrounded by O only. +# Print 0 if none found. +## +use boolean; +use Lingua::EN::Numbers::Ordinate; + +use Data::Dump q/pp/; + +my $test0 = [["O", "O", "X"], ["X", "O", "O"], ["X", "O", "O"]]; +my $test1 = [["O", "O", "X", "O"], ["X", "O", "O", "O"], ["X", "O", "O", "X"], ["O", "X", "O", "O"]]; + +sub check_x{ + my($i, $matrix) = @_; + my @indices = ( + ## + # For any X we have a maximum of eight places to check + # which are labelled A, B, C, D, E, F, G, and H. + # A B C + # D X E + # F G H + ## + [$i->[0] - 1, $i->[1] - 1], #A + [$i->[0] - 1, $i->[1]], #B + [$i->[0] - 1, $i->[1] + 1], #C + [$i->[0], $i->[1] - 1], #D + [$i->[0], $i->[1] + 1], #E + [$i->[0] + 1, $i->[1] - 1], #F + [$i->[0] + 1, $i->[1]], #G + [$i->[0] + 1, $i->[1] + 1] #H + ); + for my $check (@indices){ + next if($check->[0] < 0 || $check->[1] < 0);# ignore any impossible (negative index) locations + next if($check->[0] >= @{$matrix} || $check->[1] >= @{$matrix->[0]});# ignore any impossible (row or column index out of bounds) locations + return false if($matrix->[$check->[0]]->[$check->[1]] eq "X"); + } + return true; +} + +sub x_search{ + my($matrix) = @_; + my @x; + my $row_index = -1; + for my $row (0 .. (@{$matrix} - 1)){ + $row_index++; + my $column_index = 0; + for my $column (0 .. (@{$matrix->[$row_index]} - 1)){ + if($matrix->[$row]->[$column] eq "X"){ + push @x, [$row, $column] if(check_x([$row, $column], $matrix)); + } + } + } + return @x; +} + +MAIN:{ + my @x = x_search($test0); + for my $row (@{$test0}){ + for my $column (@{$row}){ + print "$column "; + } + print "\n"; + } + print "1 X found at Row " . ($x[0]->[0] + 1) . " Column " . ($x[0]->[1] + 1) . ".\n"; + print "\n"; + @x = x_search($test1); + for my $row (@{$test1}){ + for my $column (@{$row}){ + print "$column "; + } + print "\n"; + } + for my $i (0 .. (@x - 1)){ + print ordinate($i+1) . " X found at Row " . ($x[$i]->[0] + 1) . " Column " . ($x[$i]->[1] + 1) . ".\n"; + } +}
\ No newline at end of file diff --git a/challenge-077/adam-russell/words b/challenge-077/adam-russell/words deleted file mode 100644 index 055073fe53..0000000000 --- a/challenge-077/adam-russell/words +++ /dev/null @@ -1,69903 +0,0 @@ -a -a-horizon -a-ok -aardvark -aardwolf -ab -aba -abaca -abacist -aback -abactinal -abacus -abaddon -abaft -abalienate -abalienation -abalone -abampere -abandon -abandoned -abandonment -abarticulation -abase -abased -abasement -abash -abashed -abashment -abasia -abasic -abate -abatement -abating -abatis -abatjour -abattis -abattoir -abaxial -abba -abbacy -abbatial -abbatical -abbatis -abbe -abbess -abbey -abbot -abbreviate -abbreviated -abbreviation -abbreviature -abc -abcoulomb -abdal -abderite -abdicable -abdicant -abdicate -abdication -abdicator -abditory -abditos -abdomen -abdominal -abdominocentesis -abdominoscope -abdominoscopy -abdominous -abdominousness -abdominovesical -abduce -abducent -abduct -abduction -abductive -abductor -abeam -abecedarian -abecedarius -abecedary -abed -abel -abelia -abelmoschus -abelmosk -abends -aber -aberdeen -aberdevine -aberrance -aberrant -aberration -abest -abet -abetalipoproteinemia -abetment -abettor -abeunt -abeyance -abeyant -abfarad -abhenry -abhor -abhorrence -abhorrent -abhorrer -abibis -abidance -abide -abiding -abidjan -abience -abient -abies -abigail -abiit -abilities -ability -abiogenesis -abiogenetic -abiogenist -abiotrophy -abito -abject -abjection -abjectly -abjectness -abjunction -abjuration -abjurationabjurement -abjure -abkari -ablactation -ablated -ablation -ablative -ablaut -ablaze -ablaze(p) -able -ablebodied -ablegate -ableism -ableness -ablepharia -ablepsia -ablepsy -abloom -ablude -ablution -ablutionary -abnaki -abnegation -abnegator -abnormal -abnormality -abnormalize -abnormally -abnormis -abnormity -abnormous -aboard -abocclusion -abode -abodement -aboding -abohm -aboideau -abois -aboiteau -abolengo -abolish -abolishable -abolishment -abolition -abolitionary -abolitionism -abolitionist -abolitionize -abomasal -abomasum -abominable -abominate -abomination -abominator -aborad -aboral -abord -aboriginal -aborigine -aborigines -aborning -abort -aborticide -abortifacient -abortion -abortionist -abortive -abortively -abortus -abound -abounding -about -about(p) -about-face -abouts -above -above-mentioned -aboveboard -aboveground -abovementioned -abovesaid -abovestairs -abra -abracadabra -abrachia -abrade -abraded -abrader -abraham -abramis -abranchiate -abrasion -abrasive -abreast -abrege -abreption -abridge -abridged -abridger -abridgment -abroach -abroad -abrocoma -abrocome -abrogate -abrogated -abrogation -abronia -abrupt -abruption -abruptly -abruptness -abruzzi -abscess -abscessed -abscind -abscision -abscissa -abscission -abscond -absconder -abscondment -absence -absens -absent -absentee -absenteeism -absently -absentminded -absentmindedness -absento -absents -absinth -absinthe -absolute -absolutely -absoluteness -absolution -absolutism -absolutist -absolve -absolved -absolver -absolvitory -absolvitur -absonant -absonous -absorb -absorbable -absorbate -absorbed -absorbefacient -absorbency -absorbent -absorber -absorbing -absorption -absorptivity -absquatulate -abstain -abstainer -abstemious -abstemiously -abstemiousness -abstention -absterge -abstergent -abstersion -abstersive -abstinence -abstinent -abstract -abstracted -abstractedly -abstractedness -abstraction -abstractionism -abstractionist -abstractive -abstractly -abstractness -abstractor -abstruse -abstrusely -absurd -absurdity -absurdly -absurdness -absurdum -abudefduf -abulia -abulic -abuna -abundance -abundant -abundanti -abundantly -abuse -abused -abuser -abusive -abusively -abut -abutilon -abutment -abuttal -abutter -abutting -abuzz -abvolt -abwatt -aby -abysm -abysmal -abyss -abyssal -abyssinian -ac -acacia -academia -academic -academical -academically -academician -academicianship -academist -academy -acadia -acadian -acalypha -acanthaceae -acanthisitta -acanthocephala -acanthocephalan -acanthocereus -acanthocybium -acanthocyte -acanthocytosis -acanthoid -acantholysis -acanthoma -acanthophis -acanthopterygii -acanthoscelides -acanthosis -acanthotic -acanthuridae -acanthurus -acanthus -acapnic -acapulco -acardia -acariasis -acariatre -acaricide -acarid -acaridae -acarina -acarine -acaritre -acarophobia -acarpelous -acarpous -acarus -acatalectic -acataphasia -acathexia -acathexis -acaudate -acaulescent -accedas -accede -accelerando -accelerate -accelerated -accelerating -acceleration -accelerative -accelerator -accelerometer -accension -accent -accented -accentor -accents -accentual -accentuate -accentuation -accept -accepta -acceptability -acceptable -acceptably -acceptance -acceptation -accepted -accepting -acception -acceptive -acceptor -access -accessible -accession -accessional -accessorial -accessory -acciaccatura -accidence -accident -accident-prone -accidental -accidentally -accidentalness -accidents -accipere -accipient -accipiter -accipitres -accipitridae -accipitriformes -accipitrine -acclaim -acclamate -acclamation -acclimatization -acclimatize -acclivitous -acclivity -acclivous -accloy -accolade -accommodate -accommodating -accommodation -accommodational -accommodative -accomodation -accompanied -accompaniment -accompanist -accompany -accompanying -accompli -accomplice -accomplish -accomplishable -accomplished -accomplishment -accomplishments -accompts -accord -accordance -accordant -accordian -according -accordingly -accordion -accordionist -accost -accouchement -accoucheur -accoucheuse -account -accountability -accountable -accountable(p) -accountableness -accountancy -accountant -accountantship -accounter -accounting -accounts -accouple -accouplement -accousente -accouter -accoutered -accouterment -accouterments -accoy -accra -accredit -accreditation -accredited -accretion -accretionary -accretive -accrimination -accroach -accrue -accrued -accrust -accubation -accueil -accultural -acculturation -acculturational -accumbent -accumulate -accumulated -accumulation -accumulative -accuracy -accurate -accurately -accurse -accursed -accusable -accusation -accusative -accusatorial -accusatory -accuse -accused -accuser -accusing -accusingly -accustom -accustomary -accustomed -ace -acebutolol -aceite -aceldama -acentric -acephalia -acephalous -acequia -acequiador -acequiamadre -acer -aceraceae -acerate -aceration -acerb -acerbate -acerbic -acerbity -acerola -acervate -acervatim -acervation -acervulus -acervus -acescent -acetabular -acetabulum -acetal -acetaldehyde -acetamide -acetaminophen -acetanilide -acetate -acetic -acetone -acetonic -acetophenetidin -acetose -acetous -acetyl -acetylcholine -acetylene -acetylenic -acetylic -achaean -achar -acharn -acharne -acharnement -achates -ache -achene -achenial -acheron -acheronian -acherontia -acherontis -acheta -achievability -achievable -achieve -achievement -achiever -achillea -achillean -achilles -achimenes -aching -achira -achivi -achlamydeous -achlorhydria -achlorhydric -achoerodus -acholia -achomawi -achondrite -achondritic -achondroplasia -achondroplastic -achras -achromatic -achromatin -achromatinic -achromatism -achromatize -achromatous -achromia -achromic -achylia -acicula -acicular -aciculate -acid -acid-fast -acid-forming -acid-loving -acidemia -acidic -acidification -acidify -acidimetric -acidimetry -acidity -acidophil -acidophilic -acidosis -acidotic -acidulate -acidulated -acidulous -acierta -aciform -acinaform -acinar -aciniform -acinonyx -acinos -acinus -acipenser -acipenseridae -ackee -acknowledge -acknowledgeable -acknowledged -acknowledgement -acknowledgment -acme -acne -acned -acneiform -acnidosporidia -acocanthera -acold -acology -acolothyst -acolyte -acolyth -acomia -aconcagua -aconite -aconitum -acoraceae -acorea -acorn -acorus -acousma -acoustic -acoustically -acoustician -acoustics -acquaint -acquaintance -acquainted -acquainted(p) -acquaintenace -acquaintend -acquainting -acquest -acquiesce -acquiescence -acquiescent -acquirable -acquire -acquired -acquirement -acquirements -acquirer -acquiring -acquirit -acquisition -acquisitions -acquisitive -acquisitiveness -acquit -acquitment -acquittal -acquittance -acquitted -acrasiomycetes -acre -acre-foot -acreage -acres -acrid -acrididae -acridity -acridotheres -acrilan -acrimonious -acrimony -acris -acritical -acritude -acroama -acroamatic -acroamatical -acroamatics -acroanesthesia -acroatic -acrobat -acrobates -acrobatic -acrobatics -acrocarp -acrocarpous -acrocarpus -acrocentric -acrocephalus -acroclinium -acrocomia -acrocyanosis -acrodont -acrogen -acrogenic -acromatic -acromegalic -acromegaly -acromicria -acromion -acromphalus -acromyotonia -acronym -acronymic -acropetal -acrophobia -acrophobic -acropolis -acropora -acrosome -acrospire -across -across-the-board -acrostic -acrostichum -acrylic -act -acta -actable -actaea -acted -acti -actias -actifed -actin -actinal -acting -acting(a) -actinia -actiniaria -actinic -actinidia -actinidiaceae -actiniopteris -actinism -actinium -actinoid -actinolite -actinomeris -actinometer -actinometric -actinometry -actinomorphic -actinomyces -actinomycetacaea -actinomycetal -actinomycetales -actinomycete -actinomycin -actinomycosis -actinomycotic -actinomyxidia -actinomyxidian -actinopod -actinopoda -action -actionable -actions -actitis -actium -activated -activating(a) -activation -activator -active -actively -activeness -activism -activist -activity -actomyosin -actor -actress -acts -actu -actual -actuality -actualized -actually -actuarial -actuary -actuateact -actuated -actuator -actum -actus -acu -acuate -acuity -aculea -aculeate -aculeated -aculeus -acumen -acuminate -acuminated -acumination -acun -acupressure -acupuncture -acute -acutely -acuteness -acyclic -acyclovir -ad -ad-lib -adactylia -adactylism -adactylous -adad -adaga -adage -adagio -adalia -adam -adamance -adamant -adamantean -adamantine -adamantly -adams -adansonia -adapa -adapid -adapt -adaptability -adaptable -adaptation -adaptational -adapted -adapter -adaption -adaptive -adar -adaxial -add -addable -addax -adde -added -addend -addendum -adder -addere -addesse -addict -addicted -addiction -addictive -adding -addison -additament -addition -additional -additionally -additive -additum -addle -addle-head -addlebrained -addled -addlehead -addlepated -address -addressable -addressed -addressee -addresses -adduce -adducent -adducing -adduction -adductive -adductor -ade -adeem -adel -adelaide -adelges -adelgid -adelgidae -adelie -adelig -adelomorphous -ademption -ademptum -aden -adenanthera -adenine -adenitis -adenium -adenocarcinoma -adenocarcinomatous -adenography -adenoid -adenoidal -adenoidectomy -adenoma -adenomegaly -adenopathy -adenosine -adenota -adenovirus -adeo -adeology -adept -adeptness -adequacy -adequate -adequately -adespotic -adhere -adherence -adherent -adhering -adhesion -adhesive -adhesiveness -adhibenda -adhibit -adhibition -adhortation -adiabatic -adiantaceae -adiantum -adiaphanous -adiathermancy -adience -adient -adieu -adige -adipocere -adipose -adiposity -adirondacks -adit -aditi -aditya -adj -adjacency -adjacent -adjection -adjectitious -adjectival -adjectivally -adjective -adjectively -adjectives -adjoin -adjoining -adjourn -adjournment -adjuc -adjudge -adjudicate -adjudication -adjudicative -adjudicator -adjunct -adjunctive -adjuration -adjuratory -adjure -adjust -adjustable -adjusted -adjuster -adjustive -adjustment -adjutage -adjutant -adjuvant -adjuvat -adlumia -admass -admeasurement -administer -administrable -administration -administrative -administratively -administrator -administrators -admirability -admirable -admirably -admiral -admiralty -admirari -admiration -admire -admired -admirer -admiring -admiringly -admissable -admissibility -admissible -admission -admissive -admit -admittable -admittance -admitted -admitted(a) -admitting -admixture -admlration -admonish -admonished -admonisher -admonition -admonitive -admonitory -adnate -adnexa -adnexal -adnoun -ado -adobe -adobo -adolescence -adolescent -adonic -adonis -adonize -adopt -adoptable -adopted -adoption -adoptive -adorability -adorable -adorably -adoration -adore -adored -adorer -adoring -adoringly -adorn -adorned -adorned(p) -adornment -adown -adrenal -adrenalectomy -adrenaline -adrenarche -adrenergic -adrenocortical -adrenocorticotropic -adrenosterone -adrenotrophin -adriatic -adrift -adrift(p) -adroit -adroitly -adroitness -adrolepsy -adscititious -adscript -adscriptus -adsorbable -adsorbate -adsorbed -adsorbent -adsorption -adulation -adulator -adulatory -adullam -adult -adulterant -adulterate -adulterated -adulterating -adulteration -adulterer -adulteress -adulterine -adulterous -adulterously -adultery -adulthood -adultism -adultness -adultress -adumbrate -adumbration -adumbrative -aduncated -aduncity -aduncous -adust -adustion -adv -advance -advance(a) -advanced -advanced(a) -advancement -advances -advancing -advantage -advantaged -advantageous -advection -advective -advene -advent -adventism -adventist -adventitial -adventitious -adventive -adventure -adventurer -adventures -adventuress -adventurism -adventuristic -adventurous -adventurousness -adverb -adverbial -adverbially -adverbs -adversaria -adversary -adversarys -adversative -adverse -adversely -adversis -adversity -adversitys -adversum -advert -advertence -advertency -advertent -advertise -advertised -advertisement -advertiser -advertising -advice -advisability -advisable -advise -advised -advisedly -advisee -advisemement -adviser -advisory -advocacy -advocate -advocation -advoutress -advoutry -advowson -adynamia -adynamic -adynamy -adytum -adz -adze -adzooks -aecial -aeciospore -aecium -aedes -aedile -aedipus -aeequa -aegean -aegiceras -aegilops -aegina -aegis -aegospotami -aegri -aegypiidae -aegypius -aegyptopithecus -aeneas -aeneid -aeneus -aeolian -aeolic -aeolis -aeolotropic -aeolus -aeon -aeonium -aepyceros -aepyornidae -aepyorniformes -aequa -aequam -aequat -aequis -aequo -aerated -aeration -aerator -aere -aerial -aerialist -aerially -aerides -aerie -aeriferous -aerifiction -aeriform -aerobacter -aerobe -aerobic -aerobics -aerobiosis -aerobiotic -aerodontalgia -aerodrome -aerodynamic -aerodynamics -aerography -aerolite -aerological -aerology -aerolytic -aeromancy -aeromechanic -aeromechanics -aeromedical -aeromedicine -aerometer -aerometry -aeronatics -aeronaut -aeronautic -aeronautical -aeronautics -aerophagia -aerophilatelic -aerophilately -aeroplane -aeroplanist -aeroscope -aeroscopy -aerosol -aerosolized -aerospace -aerosphere -aerostat -aerostatic -aerostatics -aerostation -aertex -aes -aeschylean -aeschylus -aeschynanthus -aesculapian -aesculapius -aesculus -aesir -aesop -aestas -aesthetic -aesthetically -aesthetics -aestival -aetas -aeterna -aeternum -aether -aethionema -aethusa -aetiology -aetobatus -aevi -afar -afeard -afeard(p) -afebrile -affability -affable -affably -affair -affaire -affaires -affairs -affect -affectation -affected -affected(p) -affectedly -affectedness -affectibility -affecting -affectingly -affection -affectional -affectionate -affectionateness -affectioned -affections -affector -affects -affenpinscher -afferent -affettuoso -affiance -affianced -affiche -afficher -affidation -affidavit -affiliated -affiliation -affinal -affined -affinity -affirm -affirmable -affirmance -affirmation -affirmative -affirmatively -affirmativeness -affix -affixal -affixation -affixed -afflation -afflatus -afflict -afflicted -afflicting -affliction -afflictions -afflictive -affluence -affluent -afflux -affluxion -afford -afforestation -affraid -affranchise -affranchisement -affray -affrayment -affricate -affrication -affriction -affright -affrightment -affront -affronted -affronterai -affuse -affusion -afghan -afghani -afghanistan -afibrinogenemia -afield -afire -aflak -aflame(p) -aflare -afloat -afloat(p) -aflutter -afoot -afoot(p) -afore -aforehand -aforementioned -aforenamed -aforesaid -aforesaid(a) -aforethought -aforethought(ip) -afoul -afoul(ip) -afraid -afraid(p) -aframomum -afreet -afresh -afric -africa -african -african-american -africander -afrikaans -afrikaner -afro -afro-asian -afro-wig -afroasiatic -afrocarpus -afropavo -aft -aft(a) -after -after(a) -after-hours - |
