shell脚本编写查找1000以内的水仙花数

什么是水仙花数

     水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:4^3 + 0^3+ 7^3 = 407)

代码部分

#!/bin/bash
#作者 青山
#脚本内容为自己编写

i=100
while [ $i -lt 1000 ]
do
   #a用来指代一个百位数的百位上的数字,i对100取整,就只剩下百位上的数字
   a=$[$i/100]
   #b用来指代一个百位数的十位上的数字,例如一个百位数是141,141对10取整是14,再减去百位上的数字乘以10的积,14-(1*10)=4
   b=$[$i/10-10*a]
   #c用来指代一个百位数的个位上的数字,例如一个百位数是157,157对10取余数是7
   c=$[$i%10]
   #d用来指代百位、十位、个位数的三个数的幂之和
   d=$[a*a*a+b*b*b+c*c*c]

   #判断如果此时i等于d,则输出此时的i的值
   if [ $i -eq $d ];then
     echo "$i是水仙花数"
     echo "百位的值是:$a,十位的值是:$b,个位数是:$c,三个数的幂之和是:$d,i的值是:$i"
   fi
let i++
done

运行示例

运行的路径是脚本存放的路径

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值