From 563cb2f865dcb3e10e7fe0cd3d8ca60a3e02e407 Mon Sep 17 00:00:00 2001 From: Abigail Date: Thu, 4 Nov 2021 18:12:56 +0100 Subject: Bash, bc, C, Lua, Node.js, Python and Ruby solutions for week 133, part 1. --- challenge-133/abigail/README.md | 6 ++++++ challenge-133/abigail/bash/ch-1.sh | 24 ++++++++++++++++++++++++ challenge-133/abigail/bc/ch-1.bc | 18 ++++++++++++++++++ challenge-133/abigail/c/ch-1.c | 22 ++++++++++++++++++++++ challenge-133/abigail/lua/ch-1.lua | 13 +++++++++++++ challenge-133/abigail/node/ch-1.js | 15 +++++++++++++++ challenge-133/abigail/python/ch-1.py | 15 +++++++++++++++ challenge-133/abigail/ruby/ch-1.rb | 14 ++++++++++++++ challenge-133/abigail/t/ctest.ini | 6 ++++++ 9 files changed, 133 insertions(+) create mode 100644 challenge-133/abigail/bash/ch-1.sh create mode 100644 challenge-133/abigail/bc/ch-1.bc create mode 100644 challenge-133/abigail/c/ch-1.c create mode 100644 challenge-133/abigail/lua/ch-1.lua create mode 100644 challenge-133/abigail/node/ch-1.js create mode 100644 challenge-133/abigail/python/ch-1.py create mode 100644 challenge-133/abigail/ruby/ch-1.rb diff --git a/challenge-133/abigail/README.md b/challenge-133/abigail/README.md index a5c5601063..228c3cd83c 100644 --- a/challenge-133/abigail/README.md +++ b/challenge-133/abigail/README.md @@ -9,8 +9,14 @@ ### "No buildin sqrt function" * [AWK][awk/ch-1.awk) +* [Bash][bash/ch-1.sh) +* [bc][bc/ch-1.bc) * [C][c/ch-1.c) +* [Lua][lua/ch-1.lua) +* [Node.js][node/ch-1.js) * [Perl][perl/ch-1a.pl) +* [Python][python/ch-1.py) +* [Ruby][ruby/ch-1.rb) ## Part 2 diff --git a/challenge-133/abigail/bash/ch-1.sh b/challenge-133/abigail/bash/ch-1.sh new file mode 100644 index 0000000000..19b65855f8 --- /dev/null +++ b/challenge-133/abigail/bash/ch-1.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +# +# See ../README.md +# + +# +# Run as: bash ch-1.sh < input-file +# + +set -f + +while read num +do min=1 + max=$num + while ((min + 1 < max)) + do mid=$(((min + max) / 2)) + if ((mid * mid < num)) + then ((min = mid)) + else ((max = mid)) + fi + done + echo $min +done diff --git a/challenge-133/abigail/bc/ch-1.bc b/challenge-133/abigail/bc/ch-1.bc new file mode 100644 index 0000000000..22bc6047db --- /dev/null +++ b/challenge-133/abigail/bc/ch-1.bc @@ -0,0 +1,18 @@ +# +# See ../README.md +# + +# +# Run as: bc ch-1.bc < input-file +# + + +while (1) { + n = read () + if (n == 0) {break} + p = l (n) / 2 + o = scale + scale = 0 + e (p) + scale = o +} diff --git a/challenge-133/abigail/c/ch-1.c b/challenge-133/abigail/c/ch-1.c new file mode 100644 index 0000000000..b750302613 --- /dev/null +++ b/challenge-133/abigail/c/ch-1.c @@ -0,0 +1,22 @@ +# include +# include +# include +# include + +/* + * See ../README.md + */ + +/* + * Run as: cc -o ch-1.o ch-1.c; ./ch-1.o < input-file + */ + +int main (void) { + int n; + + while (scanf ("%d", &n) == 1) { + printf ("%.0f\n", floor (exp (log ((double) n) / 2))); + } + + return (0); +} diff --git a/challenge-133/abigail/lua/ch-1.lua b/challenge-133/abigail/lua/ch-1.lua new file mode 100644 index 0000000000..f846c84e91 --- /dev/null +++ b/challenge-133/abigail/lua/ch-1.lua @@ -0,0 +1,13 @@ +#!/opt/local/bin/lua + +-- +-- See ../README.md +-- + +-- +-- Run as: lua ch-1.lua < input-file +-- + +for num in io . lines () do + print (math . floor (math . exp (math . log (tonumber (num)) / 2))) +end diff --git a/challenge-133/abigail/node/ch-1.js b/challenge-133/abigail/node/ch-1.js new file mode 100644 index 0000000000..401e7ca4f4 --- /dev/null +++ b/challenge-133/abigail/node/ch-1.js @@ -0,0 +1,15 @@ +#!/usr/local/bin/node + +// +// See ../README.md +// + +// +// Run as: node ch-1.js < input-file +// + + require ('readline') +. createInterface ({input: process . stdin}) +. on ('line', num => { + console . log (Math . floor (Math . exp (Math . log (+num) / 2))) +}) diff --git a/challenge-133/abigail/python/ch-1.py b/challenge-133/abigail/python/ch-1.py new file mode 100644 index 0000000000..9fc7b1c3fd --- /dev/null +++ b/challenge-133/abigail/python/ch-1.py @@ -0,0 +1,15 @@ +#!/opt/local/bin/python + +# +# See ../README.md +# + +# +# Run as: python ch-1.py < input-file +# + +import fileinput +import math + +for num in fileinput . input (): + print (math . floor (math . exp (math . log (int (num)) / 2))) diff --git a/challenge-133/abigail/ruby/ch-1.rb b/challenge-133/abigail/ruby/ch-1.rb new file mode 100644 index 0000000000..efd3e4b8a0 --- /dev/null +++ b/challenge-133/abigail/ruby/ch-1.rb @@ -0,0 +1,14 @@ +#!/usr/bin/ruby + +# +# See ../README.md +# + +# +# Run as: ruby ch-1.rb < input-file +# + +ARGF . each_line do + |num| + puts ((Math . exp(Math . log(num . to_i) / 2)) . to_i) +end diff --git a/challenge-133/abigail/t/ctest.ini b/challenge-133/abigail/t/ctest.ini index 70cc45fe36..3e0bbdbb23 100644 --- a/challenge-133/abigail/t/ctest.ini +++ b/challenge-133/abigail/t/ctest.ini @@ -7,6 +7,12 @@ 1-1 = Given Examples 2-1 = Fixed output +[1-1/perl] +skip = Does not write to stdout + +[1-1/bc] +add_to_input = 0 +exe_args = -l %RUN_FILE [2-1] no_input = 1 -- cgit