43 lines
709 B
Bash
43 lines
709 B
Bash
#!/bin/sh
|
|
|
|
mem="15 17 -1 17 -1 -1 16 1 -1 16 3 -1 15 15 0 0 -1 72 101 108 108 111 44 32 119 111 114 108 100 33 10 0 "
|
|
|
|
i=0
|
|
for v in $mem
|
|
do
|
|
eval 'mem_'$i=$v
|
|
i=$(( $i + 1 ))
|
|
done
|
|
|
|
get_m () {
|
|
eval echo '$mem_'$1
|
|
}
|
|
set_m () {
|
|
eval 'mem_'$1=$2
|
|
}
|
|
|
|
ADDR=0
|
|
STEP=0
|
|
|
|
while [ ${STEP} -lt 9999 ]
|
|
do
|
|
STEP=$(( $STEP + 1 ))
|
|
A=$(get_m $ADDR)
|
|
B=$(get_m $(($ADDR + 1)) )
|
|
C=$(get_m $(($ADDR + 2)) )
|
|
ADDR=$((ADDR + 3))
|
|
if [ $B -lt 0 ]; then
|
|
get_m $A | awk '{printf "%c",$1}'
|
|
else
|
|
set_m $B $(( $(get_m $B) - $(get_m $A) ))
|
|
if [ $(get_m $B) -le 0 ]; then
|
|
if [ $C -eq -1 ]; then
|
|
echo "Total step:"$STEP
|
|
exit 0
|
|
fi
|
|
ADDR=$C
|
|
fi
|
|
fi
|
|
done
|
|
echo "Total step:"$STEP
|