php中的水仙花数怎么写

不及物动词 其他 145

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在php中,你可以使用以下代码来判断一个数是否为水仙花数:

    “`php
    function isNarcissistic($num){
    $sum = 0;
    $temp = $num;
    $len = strlen($num);

    while($temp > 0){
    $digit = $temp % 10;
    $sum += pow($digit, $len);
    $temp = (int)($temp / 10);
    }

    if($sum == $num){
    return true;
    }else{
    return false;
    }
    }

    $num = 153;
    if(isNarcissistic($num)){
    echo $num.”是水仙花数”;
    }else{
    echo $num.”不是水仙花数”;
    }
    “`

    以上代码中,`isNarcissistic()`函数判断一个数是否为水仙花数。函数首先获取该数的位数,然后遍历每一位数的数字,求出各位数的立方和。最后将求和结果与原来的数比较,若相等则为水仙花数,否则不是水仙花数。

    在示例中,给定的数为153。该数是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。所以输出结果为:153是水仙花数。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在PHP中,可以使用以下代码来判断和打印水仙花数:

    “`php
    0) {
    $digit = $temp % 10;
    $sum += pow($digit, $len);
    $temp = floor($temp / 10);
    }

    if ($sum == $num) {
    return true;
    } else {
    return false;
    }
    }

    // 打印水仙花数
    function printArmstrongNumbers($start, $end)
    {
    for ($i = $start; $i <= $end; $i++) { if (isArmstrongNumber($i)) { echo $i . "
    “;
    }
    }
    }

    // 测试输出水仙花数
    $start = 100; // 起始数
    $end = 1000; // 结束数

    echo “水仙花数:”;
    printArmstrongNumbers($start, $end);
    ?>
    “`

    这段代码首先定义了一个函数isArmstrongNumber()来判断一个数是否为水仙花数。在函数内部,使用while循环逐位取出该数的数字,并计算每个数字的len次方的和。如果和等于原始数,则返回true,否则返回false。

    然后,定义了一个printArmstrongNumbers()函数来打印指定范围内的所有水仙花数。在函数内部使用for循环遍历起始数到结束数之间的所有数,然后调用isArmstrongNumber()函数进行判断,如果是水仙花数则打印出来。

    最后,通过给定的起始数和结束数调用printArmstrongNumbers()函数,输出指定范围内的所有水仙花数。

    执行以上代码,将输出结果为:

    “`
    水仙花数:
    153
    370
    371
    407
    “`

    以上代码可以通过修改$start和$end的值来获取不同范围内的水仙花数。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    PHP中的水仙花数指的是一个三位数,它的每个位上的数字的立方之和等于它本身。下面是一个实现水仙花数判断的PHP代码:

    “`php

    “`

    上述代码中,首先定义了一个函数`isNarcissistic()`,该函数用于判断一个数是否为水仙花数。函数接收一个参数`$num`,表示待判断的数。在函数内部,首先定义了变量`$sum`和`$temp`。`$sum`用于存储数字的立方和,`$temp`用于临时存储待判断的数。然后,使用`while`循环将`$temp`依次取余10,得到个位数。将个位数的立方加到`$sum`中,然后将`$temp`除以10取整,即去掉个位数。循环进行,直到`$temp`为0。最后,判断`$sum`是否等于`$num`,如果相等,则返回`true`,表示该数是水仙花数,否则返回`false`。

    接下来,使用`for`循环遍历100到999之间的每一个数,调用`isNarcissistic()`函数进行判断,如果返回值为`true`,则输出该数是水仙花数。

    运行以上代码,将会输出所有的水仙花数。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部