diff options
| author | Abigail <abigail@abigail.be> | 2021-03-03 15:42:22 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2021-03-03 15:42:22 +0100 |
| commit | b904febdfd193990117ec7dac30bbaa920986e21 (patch) | |
| tree | ffc2d830a16021f07ec4113d07bbdffc56b22574 | |
| parent | 26ae49523623bfe48ad8ccfa78efbea4d1378133 (diff) | |
| download | perlweeklychallenge-club-b904febdfd193990117ec7dac30bbaa920986e21.tar.gz perlweeklychallenge-club-b904febdfd193990117ec7dac30bbaa920986e21.tar.bz2 perlweeklychallenge-club-b904febdfd193990117ec7dac30bbaa920986e21.zip | |
BASIC solution for week 102, part 1
| -rw-r--r-- | challenge-102/abigail/README.md | 1 | ||||
| -rw-r--r-- | challenge-102/abigail/basic/ch-1.bas | 142 | ||||
| -rwxr-xr-x | challenge-102/abigail/data/preprocess | 12 | ||||
| -rw-r--r-- | challenge-102/abigail/t/ctest.ini | 3 |
4 files changed, 158 insertions, 0 deletions
diff --git a/challenge-102/abigail/README.md b/challenge-102/abigail/README.md index 687594c5f5..fd2a502c74 100644 --- a/challenge-102/abigail/README.md +++ b/challenge-102/abigail/README.md @@ -51,6 +51,7 @@ feasible. ### Solutions * [AWK](awk/ch-1.awk) * [Bash](bash/ch-1.sh) +* [BASIC](basic/ch-1.bas) * [C](c/ch-1.c) * [Lua](lua/ch-1.lua) * [Node.js](node/ch-1.js) diff --git a/challenge-102/abigail/basic/ch-1.bas b/challenge-102/abigail/basic/ch-1.bas new file mode 100644 index 0000000000..0102be462d --- /dev/null +++ b/challenge-102/abigail/basic/ch-1.bas @@ -0,0 +1,142 @@ +0100 REM +0110 REM See ../README.md +0120 REM + +0130 REM +0140 REM Run as: basic.pl ch-1.bas < input-file +0150 REM Input file should end with a negative number. +0160 REM + +0170 REM +0180 REM We are making use of the CPAN module Language::Basic +0190 REM + +1000 INPUT length +1005 IF length < 0 THEN END + +1010 IF length = 2 THEN PRINT "65" +1020 IF length = 6 THEN PRINT "621770" +1030 IF length = 9 THEN PRINT "281089082" +1040 IF length = 10 THEN PRINT "2022652202" +1050 IF length = 10 THEN PRINT "2042832002" +1060 IF length = 12 THEN PRINT "868591084757" +1070 IF length = 12 THEN PRINT "872546974178" +1080 IF length = 12 THEN PRINT "872568754178" +1090 IF length = 13 THEN PRINT "6979302951885" +1100 IF length = 14 THEN PRINT "20313693904202" +1110 IF length = 14 THEN PRINT "20313839704202" +1120 IF length = 14 THEN PRINT "20331657922202" +1130 IF length = 14 THEN PRINT "20331875722202" +1140 IF length = 14 THEN PRINT "20333875702202" +1150 IF length = 14 THEN PRINT "40313893704200" +1160 IF length = 14 THEN PRINT "40351893720200" +1170 IF length = 15 THEN PRINT "200142385731002" +1180 IF length = 15 THEN PRINT "204238494066002" +1190 IF length = 15 THEN PRINT "221462345754122" +1200 IF length = 15 THEN PRINT "244062891224042" +1210 IF length = 15 THEN PRINT "245518996076442" +1220 IF length = 15 THEN PRINT "248359494187442" +1230 IF length = 15 THEN PRINT "403058392434500" +1240 IF length = 15 THEN PRINT "441054594034340" +1250 IF length = 15 THEN PRINT "816984566129618" +1260 IF length = 16 THEN PRINT "2078311262161202" +1270 IF length = 16 THEN PRINT "2133786945766212" +1280 IF length = 16 THEN PRINT "2135568943984212" +1290 IF length = 16 THEN PRINT "2135764587964212" +1300 IF length = 16 THEN PRINT "2135786765764212" +1310 IF length = 16 THEN PRINT "4135786945764210" +1320 IF length = 16 THEN PRINT "6157577986646405" +1330 IF length = 16 THEN PRINT "6889765708183410" +1340 IF length = 16 THEN PRINT "8052956026592517" +1350 IF length = 16 THEN PRINT "8052956206592517" +1360 IF length = 16 THEN PRINT "8191154686620818" +1370 IF length = 16 THEN PRINT "8191156864620818" +1380 IF length = 16 THEN PRINT "8191376864400818" +1390 IF length = 16 THEN PRINT "8650327689541457" +1400 IF length = 16 THEN PRINT "8650349867341457" +1410 IF length = 17 THEN PRINT "22542040692914522" +1420 IF length = 17 THEN PRINT "67725910561765640" +1430 IF length = 17 THEN PRINT "86965750494756968" +1440 IF length = 18 THEN PRINT "225342456863243522" +1450 IF length = 18 THEN PRINT "225342458663243522" +1460 IF length = 18 THEN PRINT "225342478643243522" +1470 IF length = 18 THEN PRINT "284684666566486482" +1480 IF length = 18 THEN PRINT "284684868364486482" +1490 IF length = 18 THEN PRINT "297128548234950692" +1500 IF length = 18 THEN PRINT "297128722852950692" +1510 IF length = 18 THEN PRINT "297148324656930692" +1520 IF length = 18 THEN PRINT "297148546434930692" +1530 IF length = 18 THEN PRINT "497168548234910690" +1540 IF length = 18 THEN PRINT "619431353040136925" +1550 IF length = 18 THEN PRINT "619631153042134925" +1560 IF length = 18 THEN PRINT "631688638047992345" +1570 IF length = 18 THEN PRINT "633288858025996145" +1580 IF length = 18 THEN PRINT "633488632647994145" +1590 IF length = 18 THEN PRINT "653488856225994125" +1600 IF length = 18 THEN PRINT "811865096390477018" +1610 IF length = 18 THEN PRINT "865721270017296468" +1620 IF length = 18 THEN PRINT "871975098681469178" +1630 IF length = 18 THEN PRINT "898907259301737498" +1640 IF length = 19 THEN PRINT "2042401829204402402" +1650 IF length = 19 THEN PRINT "2060303819041450202" +1660 IF length = 19 THEN PRINT "2420424089100600242" +1670 IF length = 19 THEN PRINT "2551755006254571552" +1680 IF length = 19 THEN PRINT "2702373360882732072" +1690 IF length = 19 THEN PRINT "2825378427312735282" +1700 IF length = 19 THEN PRINT "6531727101458000045" +1710 IF length = 19 THEN PRINT "6988066446726832640" +1720 IF length = 19 THEN PRINT "8066308349502036608" +1730 IF length = 19 THEN PRINT "8197906905009010818" +1740 IF length = 19 THEN PRINT "8200756128308135597" +1750 IF length = 19 THEN PRINT "8320411466598809138" +1760 IF length = 20 THEN PRINT "22134434735752443122" +1770 IF length = 20 THEN PRINT "22134434753752443122" +1780 IF length = 20 THEN PRINT "22134436953532443122" +1790 IF length = 20 THEN PRINT "22136414517954423122" +1800 IF length = 20 THEN PRINT "22136414971554423122" +1810 IF length = 20 THEN PRINT "22136456771730423122" +1820 IF length = 20 THEN PRINT "61952807156239928885" +1830 IF length = 20 THEN PRINT "61999171315484316965" +1840 IF length = 20 THEN PRINT "65459144877856561700" +1850 IF length = 21 THEN PRINT "208393425242000083802" +1860 IF length = 21 THEN PRINT "219518549668074815912" +1870 IF length = 21 THEN PRINT "257661195832219326752" +1880 IF length = 21 THEN PRINT "286694688797362186682" +1890 IF length = 21 THEN PRINT "837982875780054779738" +1900 IF length = 22 THEN PRINT "2414924301133245383042" +1910 IF length = 22 THEN PRINT "2414924323311045383042" +1920 IF length = 22 THEN PRINT "2414946523311023183042" +1930 IF length = 22 THEN PRINT "2576494891793995836752" +1940 IF length = 22 THEN PRINT "2576494893971995836752" +1950 IF length = 22 THEN PRINT "2620937863931054483162" +1960 IF length = 22 THEN PRINT "2620937863931054483162" +1970 IF length = 22 THEN PRINT "2620955641393276283162" +1980 IF length = 22 THEN PRINT "2622935621573476481162" +1990 IF length = 22 THEN PRINT "2622935643751276481162" +2000 IF length = 22 THEN PRINT "2622937641933274481162" +2010 IF length = 22 THEN PRINT "2622955841933256281162" +2020 IF length = 22 THEN PRINT "2622957843751254281162" +2030 IF length = 22 THEN PRINT "2727651947516658327272" +2040 IF length = 22 THEN PRINT "2747736918335953517072" +2050 IF length = 22 THEN PRINT "2788047668617596408872" +2060 IF length = 22 THEN PRINT "2788047848617776408872" +2070 IF length = 22 THEN PRINT "2788047868437576408872" +2080 IF length = 22 THEN PRINT "2788047888617376408872" +2090 IF length = 22 THEN PRINT "2939501759705522349392" +2100 IF length = 22 THEN PRINT "2939503375709360349392" +2110 IF length = 22 THEN PRINT "2939503537707740349392" +2120 IF length = 22 THEN PRINT "2939521359525562149392" +2130 IF length = 22 THEN PRINT "2939521557527542149392" +2140 IF length = 22 THEN PRINT "2939523577527340149392" +2150 IF length = 22 THEN PRINT "2939523779525320149392" +2160 IF length = 22 THEN PRINT "2959503377707360349192" +2170 IF length = 22 THEN PRINT "6344828989519887483525" +2180 IF length = 22 THEN PRINT "8045841652464561594308" +2190 IF length = 22 THEN PRINT "8045841654642561594308" +2200 IF length = 22 THEN PRINT "8655059576513659814468" +2210 IF length = 22 THEN PRINT "8655059772157639814468" +2220 IF length = 22 THEN PRINT "8655079374155679614468" +2230 IF length = 22 THEN PRINT "8655079574515659614468" +2240 IF length = 22 THEN PRINT "8888070771864228883913" + +5000 GOTO 1000 diff --git a/challenge-102/abigail/data/preprocess b/challenge-102/abigail/data/preprocess index 28a195f0fe..3e16a0fc07 100755 --- a/challenge-102/abigail/data/preprocess +++ b/challenge-102/abigail/data/preprocess @@ -24,6 +24,7 @@ my @bs = sort {$a <=> $b} grep {$buckets [$_]} keys @buckets; open my $awk_h, ">", "rn.awk" or die "open rn.awk: $!"; open my $bash_h, ">", "rn.sh" or die "open rn.sh: $!"; +open my $basic_h, ">", "rn.bas" or die "open rn.bas: $!"; open my $c_h, ">", "rn.c" or die "open rn.c: $!"; open my $lua_h, ">", "rn.lua" or die "open rn.lua: $!"; open my $node_h, ">", "rn.js" or die "open rn.js: $!"; @@ -31,8 +32,11 @@ open my $perl_h, ">", "rn.pl" or die "open rn.pl: $!"; open my $python_h, ">", "rn.py" or die "open rn.py: $!"; open my $ruby_h, ">", "rn.rb" or die "open rn.rb: $!"; +my $basic_ln = 1000; + say $awk_h "BEGIN {"; say $bash_h "declare -a rare_numbers\n"; +say $basic_h "$basic_ln INPUT length\n\n"; say $c_h "char * rare_numbers [23];\n"; say $c_h "int main () {"; say $lua_h "rare_numbers = {}\n"; @@ -65,6 +69,14 @@ foreach my $bs (0 .. 22) { print $bash_h "\n"; # + # BASIC + # + for my $rn (@{$buckets [$bs]}) { + printf $basic_h qq {%03d IF length = %2d THEN PRINT %24s\n} + => ($basic_ln += 10), $bs, qq {"$rn"} + } + + # # C # printf $c_h ' rare_numbers [%2d] = ', $bs; diff --git a/challenge-102/abigail/t/ctest.ini b/challenge-102/abigail/t/ctest.ini index 9138922364..ace56ff245 100644 --- a/challenge-102/abigail/t/ctest.ini +++ b/challenge-102/abigail/t/ctest.ini @@ -7,3 +7,6 @@ 1-6 = Multiple inputs
1-7 = Exceed size of largest known rare number
2-1 = Given examples
+
+[challenges/1/basic]
+add_to_input = -1
|
