shell实现杨辉三角

该Bash脚本文件(yanghui.sh)由liAng编写,用于读取用户输入的高度并生成相应行数的杨辉三角形。脚本中定义了一个名为worker的函数,通过嵌套循环计算每个位置的数字,并使用数组处理和显示结果。在每一行的输出中,中心对齐了杨辉三角形的当前行。
摘要由CSDN通过智能技术生成
#!/bin/bash
#
# fileName: yanghui.sh
# author: liAng
# mail: angl6112@163.com
# created: Thu 12 Jan 2023 10:56:59 AM CST
# 
### BEGIN INIT INFO
# Description:
# 1.输入行数, 打印杨辉三角形
#
### END INIT INFO

COLUMNS=$(tput cols)

function worker()  {
	read -p '输入高度: ' line
    arr=(0 1)
	for ((i=1;i<=$line;i++))
	do  
		for ((a=0;a<$i;a++))
		do
			if [ "$a" -eq 0 ];then res[0]=1; continue; fi
			if [ "$a" -eq "$[$i-1]" ];then res[$i]=1; continue; fi
			let b=$a-1
			x=${arr[$a]} 
			y=${arr[$b]}
			res[$a]=$[$x+$y]
		done

		unset arr; arr=(${res[*]})
		title=`echo ${res[*]}`
		printf "%*s\n" $(((${#title}+$COLUMNS)/2)) "$title"
		unset res

	done

}

function main() {
	worker
}

main

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值