设为首页 加入收藏

TOP

PHPH实现水仙花数的5个示例(一)
2019-08-04 00:14:20 】 浏览:97
Tags:PHPH 实现 水仙花 示例

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


方法一、


<?php
for($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>";
        }
      }
    }
}
?>


方法二、


<?php
function 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();


方法四、


<html>
 
<head>
  <title></title>
</head>
 
<body>
 
<?php
 
 function 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>


方法五、


<?php
header('content-type:text/html;charset=utf8 ');
 ?>
 <script>
for (var i=100; i < 1000; i++) {
    a=parseInt(i%10);//分解出个位
    b=parseInt(i/10%10);//分解出十位
   

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++ 继承 - 在派生类中对基类初始.. 下一篇Java连接RabbitMQ实例

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目