PHP代码练习

1.打印图形

图片[1]-PHP代码练习-魔法少女雪殇
效果
<style type="text/css">
    span{
        width: 5px;
        margin: 0px 8px;
    }   
    div{
        text-align: center;
    }
</style>
</head>
    
<body>
    <div>
    <?php
        $total=9;
        for($i=1;$i<=$total;$i++){
            $row=$i;    //表示变化后行的编号
            if($i>$total/2)
                $row=$total-$i+1;
            $n=2*$row-1;//星星的个数
            for($j=1;$j<=$n;$j++){
                echo '<span>*</span>';
            }
            echo '<br>';
        }
    ?>
    </div>
打印图形2:
图片[2]-PHP代码练习-魔法少女雪殇
最终效果
<style type="text/css">
    span{
        width: 5px;
        margin: 0px 8px;
        display: inline-block;
    }   
    div{
        text-align: center;
    }
</style>
</head>
<div>
<?php 
    for($i=1;$i<=10;$i++){
        if($i==1||$i==2||$i==9||$i==10){
            for($j=1;$j<=10;$j++){
                echo "<span>*</span>";
            }
        }else{
            for($j=1;$j<=10;$j++){
                if($j==1||$j==2||$j==9||$j==10)
                    echo'<span>*</span>';
                else
                    echo'<span></span>';
            }
            
        }
         echo'<br>';   
        }
    ?>
</div>

2.自定义函数求数组最大值最小值

<?php
header('content-type:text/html;charset=uft-8');
function mymax($array=''){       //判断最大值
    if(empty($array)||!is_array($array)){
        echo'请输入一个数组';
        exit;
    }
    $max=$array[0];     //假设第0个值最大
    for($i=1,$n=count($array);$i<$n;$i++){
        if($array[$i]>$max)
            $max=$array[$i];
    }
    return $max;
}
function mymin($array=''){      //判断最小值
      if(empty($array)||!is_array($array)){
        echo'请输入一个数组';
        exit;
    }
    $min=$array[0];
    for($i=1,$n=count($array);$i<$n;$i++){
        if($array[$i]<$min)
            $min=$array[$i];
    }
    return($min);
}
$array=array(1,2,3,5,6,81,6,8,7,6);    //任意输入数字
echo mymax($array),'<br>';
echo mymin($array);
?>	

3.递归实现因式分解

<?php
$i=2;   //因数从2开始
function fun($num){
    global $i;
    if($num%$i==0){
        echo $i;
        $num=$num/$i;
         echo'<br>';
        fun($num);  //递归点
    }
    else {
        if($num=1){return;} //递归出口
        $i++;
         echo'<br>';
        fun($num);  //递归点
    }
   
}
fun();//函数调用    
?>	

4.递归法求最大公约数和最小公倍数

分析:算法 更相减损法

$num1 $num2
8 6
6 2
2 0

将$num2移动至$num1,再将$num1%$num2 到0为止,2则为最大公约数,

最小公倍数:$num1*$num2/最大公约数

<?php
function fun($num1,$num2){
    if($num2==0)
        return $num1;
    return fun($num2,$num1%$num2);
}
$num=fun(8251,6105); //最大公约数
echo $num,'<br>';
echo 8251*6105/$num;      //最小公倍数
?>

5.递归 猴子恰桃子

一直🐒第一天吃了一半又吃了一个,第二天同上,到第10天就剩一个桃子,求总共多少个桃子

<?php
function f($n){
    if($n==10)
        return 1;
    return 2*(f($n+1)+1);   //核心算法
}
echo f(1); //第一天桃子数
?>

6.打印十行杨辉三角

图片[3]-PHP代码练习-魔法少女雪殇
效果

代码:

<?php
header('content-type:text/html;charset=utf-8');
//打印杨辉三角
function yanghui($lines=10){
    for($rows=1;$rows<=$lines;$rows++){
        for($cols=1;$cols<=$rows;$cols++){
            if($cols==1||$cols==$rows){
                $num[$rows][$cols]=1;}
            else{
                $num[$rows][$cols]=$num[$rows-1][$cols]+$num[$rows-1][$cols-1];
            }
            echo $num[$rows][$cols],' ';
        }
        echo '<br>';
}
}
yanghui();
?>

屏幕居中版

图片[4]-PHP代码练习-魔法少女雪殇
<style type="text/css">
    span{
        width:45px;
        height: 20px;
        display: inline-block;
    }
</style>
<div style="text-align: center">
<?php
header('content-type:text/html;charset=utf-8');
//打印杨辉三角
function yanghui($lines=10){
    for($rows=1;$rows<=$lines;$rows++){
        for($cols=1;$cols<=$rows;$cols++){
            if($cols==1||$cols==$rows){
                $num[$rows][$cols]=1;}
            else{
                $num[$rows][$cols]=$num[$rows-1][$cols]+$num[$rows-1][$cols-1];
            }
            echo '<span>'.$num[$rows][$cols].'</span>';
        }
        echo '<br>';
}
}
yanghui();
?>
</div>

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情