shell判断某数是不是水仙花数
时间: 2024-12-19 22:21:53 浏览: 7
在Shell脚本中,判断一个数是否为“水仙花数”(又称 Narcissistic Number 或 Pluperfect Digital Invariant),意味着将它的每个位数的立方相加,结果等于原数本身。这里可以编写一个简单函数来实现这个功能:
```bash
is_narcissistic() {
local num=$1
local sum=0
for (( digit = num // 100; digit > 0; digit = digit % 10 ))
do
sum=$((sum + (digit ** 3)))
done
if [ $num -eq $sum ]; then
echo "$num 是水仙花数"
else
echo "$num 不是水仙花数"
fi
}
read -p "请输入一个三位数: " number
if [[ $number -ge 100 && $number -le 999 ]]; then
is_narcissistic $number
else
echo "输入的不是三位数,请重新输入。"
fi
阅读全文