shell实现杨辉三角
思路:
从第三行开始,通过两个数组之间的相互计算得出。
#!/bin/bash
#
#####################################################################
#
#Author: LiangDong
#Email: 395539184@qq.com
#Date: 2021-04-19
#FileName: yanghui.sh
#URL: https://github.com/ledrsnet
#Description:
#Copyright (C): 2021 All rights reserved
#
#####################################################################
printSpace(){
printf "%$[$1-$2]s"
printf "%d " $3
printf "%$[$1-$2]s"
echo
}
read -p "请输入行数:" line
echo $line
n[0]=1
n[1]=1
if [ "$line" -eq 1 ];then
echo ${n[0]};
exit 0;
fi
if [ "$line" -eq 2 ];then
echo ${n[*]}
exit 0;
fi
printSpace $line 0 "${n[0]}"
printSpace $line 1 "${n[*]}"
for i in `eval echo {3..$line}`;do
pren=(${n[*]})
n[$(($line-1))]=1
for(( j=1;j<=$[$i-2];j++));do
n[$j]=$[${pren[$[$j-1]]}+${pren[$j]}]
done
printSpace $line $i "${n[*]}"
done