Pascal's triangle: Difference between revisions

Content added Content deleted
Line 3,268: Line 3,268:
<lang bash>#! /bin/bash
<lang bash>#! /bin/bash
pascal() {
pascal() {
local -i level=${1:-1} n
local -i n=${1:-1}
if (( level <= 1 )); then
if (( n <= 1 )); then
echo 1
echo 1
else
else
local output=$( $FUNCNAME $((level - 1)) )
local output=$( $FUNCNAME $((n - 1)) )
set -- $( tail -n 1 <<<"$output" ) # previous row
set -- $( tail -n 1 <<<"$output" ) # previous row
echo "$output"
echo "$output"
n=0
printf "1 "
for arg do
while [[ -n $1 ]]; do
printf "%d " $((n + arg))
printf "%d " $(( $1 + ${2:-0} ))
n=$arg
shift
done
done
echo 1
echo
fi
fi
}
}