当前位置:Gxlcms > PHP教程 > php实现水仙花数的4个例子

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

时间:2021-07-01 10:21:17 帮助过:19人阅读

什么是水仙花数?

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

例1,php实现水仙花数:

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

    ";

  7. }
  8. }
  9. }
  10. }
  11. ?>

例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 < 1000; ++ $i )
  13. {
  14. if ( is_narcissistic($i) )
  15. echo $i."\n";
  16. }
  17. ?>

例3,php实现水仙花数:

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

例4,php实现水仙花数:

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

人气教程排行