Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,30 @@
|
|||
halve()
|
||||
{
|
||||
expr "$1" / 2
|
||||
}
|
||||
|
||||
double()
|
||||
{
|
||||
expr "$1" \* 2
|
||||
}
|
||||
|
||||
is_even()
|
||||
{
|
||||
expr "$1" % 2 = 0 >/dev/null
|
||||
}
|
||||
|
||||
ethiopicmult()
|
||||
{
|
||||
plier=$1
|
||||
plicand=$2
|
||||
r=0
|
||||
while [ "$plier" -ge 1 ]; do
|
||||
is_even "$plier" || r=`expr $r + "$plicand"`
|
||||
plier=`halve "$plier"`
|
||||
plicand=`double "$plicand"`
|
||||
done
|
||||
echo $r
|
||||
}
|
||||
|
||||
ethiopicmult 17 34
|
||||
# => 578
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
halve() {
|
||||
(( $1 >>= 1 ))
|
||||
}
|
||||
|
||||
double() {
|
||||
(( $1 <<= 1 ))
|
||||
}
|
||||
|
||||
is_even() {
|
||||
(( ($1 & 1) == 0 ))
|
||||
}
|
||||
|
||||
multiply() {
|
||||
local plier=$1
|
||||
local plicand=$2
|
||||
local result=0
|
||||
|
||||
while (( plier > 0 ))
|
||||
do
|
||||
is_even plier || (( result += plicand ))
|
||||
halve plier
|
||||
double plicand
|
||||
done
|
||||
echo $result
|
||||
}
|
||||
|
||||
multiply 17 34
|
||||
# => 578
|
||||
Loading…
Add table
Add a link
Reference in a new issue