shell鸡兔同笼问题
思路:已知鸡有1个头两只脚,兔有1个头4条腿。设鸡数量为chicken,兔数量为rabbit,总头数为total_head,总脚数为total_feet,那么chicken+rabbit=total_head,2 * chicken+4 * rabbit=total_feet。简化后可得兔数量rabbit=(total_feet - 2 * total_head) / 2
具体实现:
#!/bin/bash
#功能:计算鸡兔同笼问题
#初始化头的数量与脚的数量
# 1. 输入第一个变量 -p 选项提示信息,输入内容存到 var1
read -p "请输入头数量:" var1
# 2. 输入第二个变量存到 var2
read -p "请输入脚数量:" var2
total_head=$var1 #头
total_feet=$var2 #脚
#计算鸡和兔的数量
rabbit=$(( (total_feet - 2 * total_head) / 2 )) #兔
chicken=$(( total_head - rabbit )) #鸡
#输出结果,判断计算结果合理性
if [ $(( chicken * 2 + rabbit * 4 )) -eq $total_feet ] && [ $chicken -ge 0 ] && [ $rabbit -ge 0 ]; then
echo 鸡的数量:"$chicken"
echo 兔的数量:"$rabbit"
else
echo 您输入的值有误,无合理结果
fi
演示结果:

浙公网安备 33010602011771号