编写一个函数判断用户输入进去的数是否是一个水仙花数

三位数版:

<script>

     let a1 = su(prompt("请输入一个三位数"))

     function su(num){

// 1拿到四位数字的各个位置上的数字

      /* *  

       以123为例子

       *         想拿到百位数字的1   先让他缩小100倍,然后通过parseInt取整,再加一个取余10

       *              parseInt(1234 / 100) % 10  ->  parseInt(12.34) % 10  ->  12%10 -> 2

       *         想拿到十位数字的2   先缩小10倍,然后取余10

       *              parseInt(1234 / 10) % 10  ->parseInt(123.4) % 10  -> 123 % 10  -> 3

       *         想拿到个位数字3     直接用原数字取余10  

       *              num % 10

      */

        var baiW = parseInt(num / 100) % 10

        var shiW = parseInt(num / 10) % 10

        var geW = num % 10

        var sum =  baiW ** 3 + shiW ** 3 + geW ** 3

        if(sum==num){

             return true

            }else{

                return false

            }

        }

        if (a1) {

        alert("是水仙花")

        } else {

        alert("不是水仙花")

        }

</script>

 

四位数版:

<script>

     let a1 = su(prompt("请输入一个四位数"))

     function su(num){

// 1拿到四位数字的各个位置上的数字

      /* *  

       以1234为例子

       *         想拿到千位数字的1   先让他缩小1000倍,然后通过parseInt取整

       *              parseInt(1234/1000) -> parseInt(1.234) -> 1

       *         想拿到百位数字的2   先让他缩小100倍,然后通过parseInt取整,再加一个取余10

       *              parseInt(1234 / 100) % 10  ->  parseInt(12.34) % 10  ->  12%10 -> 2

       *         想拿到十位数字的3   先缩小10倍,然后取余10

       *              parseInt(1234 / 10) % 10  ->parseInt(123.4) % 10  -> 123 % 10  -> 3

       *         想拿到个位数字4     直接用原数字取余10  

       *              num % 10

      */

        var qianW = parseInt(num / 1000)

        var baiW = parseInt(num / 100) % 10

        var shiW = parseInt(num / 10) % 10

        var geW = num % 10

        var sum = qianW ** 4 + baiW ** 4 + shiW ** 4 + geW ** 4

        if(sum==num){

             return true

            }else{

                return false

            }

        }

        if (a1) {

        alert("是水仙花")

        } else {

        alert("不是水仙花")

        }

</script>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值