shell简单的判断某数是不是水仙花数
时间: 2024-12-19 11:22:02 浏览: 3
在shell中,检查一个数是否为水仙花数(又称阿姆斯特朗数)通常需要先将这个数分解成它的各个位数,然后计算每个位数的三次幂之和,最后比较这个和是否等于原数。以下是一个简单的shell脚本来完成这一任务:
```bash
#!/bin/bash
is_armstrong_number() {
local num=$1
local length=$(( $(echo "$num" | wc -d) ))
local sum=0
for(( i=0; i<$length; i++ )); do
digit=$((num % 10))
sum=$((sum + (digit ** length)))
num=$((num / 10))
done
if [ $num -eq $sum ]; then
echo "$num 是水仙花数"
else
echo "$num 不是水仙花数"
fi
}
read -p "请输入一个三位数:" number
if [[ $number =~ ^[0-9]{3}$ ]]; then
is_armstrong_number $number
else
echo "请输入一个三位正整数!"
fi
阅读全文