Heim >Backend-Entwicklung >PHP-Tutorial >php实现水仙花数的4个例子

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

WBOY
WBOYOriginal
2016-07-25 09:13:011834Durchsuche

什么是水仙花数?

水仙花数是指一个 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. ?>
复制代码


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn