php实现水仙花数的4个例子

WBOY
发布: 2016-07-25 09:13:01
原创
1808 人浏览过

什么是水仙花数?

水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。 (例如:1^3 + 3^3+ 5^3 = 153),本文收集了php实现水仙花数的4个例子。

例1,php实现水仙花数:

  1. for($q=1;$q for($w=0;$w for($e=0;$e if($q*$q*$q + $w*$w*$w + $e*$e*$e ==
  2. 100*$q + 10*$w + $e){
  3. echo "$q $w $e "."

    ";

  4. }
  5. }
  6. }
  7. }
  8. ?>
复制代码

例2,php实现水仙花数:

  1. function cube( $n )

  2. {
  3. return $n * $n * $n;
  4. }
  5. function is_narcissistic ( $n )

  6. {
  7. $hundreds = floor( $n / 100); //分解出百位
  8. $tens = floor( $n / 10 ) % 10; //分解出十位
  9. $ones = floor( $n % 10 ); //分解出个位
  10. return (bool)(cube($hundreds)+cube($tens)+cube($ones) == $n);
  11. }
  12. for ( $i = 100; $i {
  13. if ( is_narcissistic($i) )
  14. echo $i."\n";
  15. }
  16. ?>
复制代码

例3,php实现水仙花数:

  1. //阿姆斯特朗数:一个k位数,它的每个位上的数字的k次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
  2. class Armstrong {
  3. static function index(){
  4. for ( $i = 100; $i echo self::is_armstrong($i) ? $i . '
    ' : '';
  5. }
  6. }
  7. static function is_armstrong($num){
  8. $s = 0;
  9. $k = strlen($num);
  10. $d = str_split($num);
  11. foreach ($d as $r) {
  12. $s += bcpow($r, $k);
  13. }
  14. return $num == $s;
  15. }
  16. }
  17. Armstrong::index();
复制代码

例4,php实现水仙花数:

  1. php实现水仙花数_bbs.it-home.org
  2. function winter($num)
  3. {
  4. if($num //定义个位
  5. $ge=$num%10;
  6. //定义十位
  7. $ten=(($num%100)-$ge) /10;
  8. //定义百位
  9. /*floor取整,忽略小数点后面的所有数*/
  10. $hundred=floor($num/100);
  11. $sum1=$ge*$ge*$ge+$ten*$ten*$ten+$hundred*$hundred*$hundred;
  12. if($sum1==$num){
  13. return 1;
  14. } else{
  15. return 0;
  16. }
  17. } else{
  18. return -1;
  19. }
  20. }
  21. if(winter(371)==-1) {
  22. echo "大于1000的数";
  23. }else{
  24. if(winter(371)) {
  25. echo "Yes";
  26. }
  27. else{
  28. echo "No";
  29. }
  30. }
  31. ?>
复制代码


来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板