各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > PHP

php水仙花数是什么

管理员 2023-09-05
PHP
123

php水仙花数是什么

内容导读

收集整理的这篇技术教程文章主要介绍了php水仙花数是什么,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2178字,纯文字阅读大概需要4分钟

内容图文

php水仙花数是什么?

所谓“水仙花数”,是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。

PHP求水仙花数的程序,有多种写法:

方法示例一:

<?phpheader("content-type:text/html;charset=utf-8;"); //设置页面编码为 utf-8//以下代码求解1000以内的水仙花数echo '<p>1000以内的水仙花数: </p>';for ( $i = 100; $i < 1000; ++ $i ){    $hundreds = floor( $i / 100);    //分解出百位    $tens = floor( $i / 10 ) % 10;   //分解出十位    $ones = floor( $i % 10 );        //分解出个位    if (bcpow($hundreds,'3')+bcpow($tens,'3')+bcpow($ones,'3') == $i)        echo $i."";}?>

输出:

1000以内的水仙花数:153370371407

方法示例二:

<?phpfor($q=1;$q<=9;$q++){    for($w=0;$w<=9;$w++){        for($e=0;$e<=9;$e++){            if($q*$q*$q + $w*$w*$w + $e*$e*$e ==                100*$q + 10*$w + $e){                echo "$q$w$e"."<p>";            }        }    }}

输出:

153370371407

方法示例三:

<?phpfunction cube( $n ){    return $n * $n * $n;}function is_narcissistic ( $n ){    $hundreds = floor( $n / 100);    //分解出百位    $tens = floor( $n / 10 ) % 10;    //分解出十位    $ones = floor( $n % 10 );    //分解出个位    return (bool)(cube($hundreds)+cube($tens)+cube($ones) == $n);}for ( $i = 100; $i < 1000; ++ $i ){    if ( is_narcissistic($i) )        echo $i."n";}

方法示例四:

<?php//阿姆斯特朗数:一个k位数,它的每个位上的数字的k次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)class Armstrong {    static function index(){        for ( $i = 100; $i < 100000; $i++ ) {            echo self::is_armstrong($i) ? $i . '<br>' : '';        }    }    static function is_armstrong($num){        $s = 0;        $k = strlen($num);        $d = str_split($num);        foreach ($d as $r) {            $s += bcpow($r, $k);        }        return $num == $s;    }}Armstrong::index();

输出:

153370371407163482089474547489272793084

方法示例五:

<html><head><title></title></head><body><?phpfunction winter($num){if($num<1000){//定义个位$ge=$num%10;//定义十位$ten=(($num%100)-$ge) /10;//定义百位/*floor取整,忽略小数点后面的所有数*/$hundred=floor($num/100);$sum1=$ge*$ge*$ge+$ten*$ten*$ten+$hundred*$hundred*$hundred;if($sum1==$num){return 1;} else{return 0;}} else{return -1;}}if(winter(371)==-1) {echo "大于1000的数";}else{if(winter(371)) {echo "Yes";}else{echo "No";}}?></body></html>

输出:

Yes

相关推荐:《PHP教程》

以上就是php水仙花数是什么的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php水仙花数是什么全部内容,希望文章能够帮你解决php水仙花数是什么所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

扫码关注

qrcode

QQ交谈

回顶部