shell实现杨辉三角

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清枫cc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值