1.打印图形
<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:
<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.打印十行杨辉三角
代码:
<?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();
?>
屏幕居中版
<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
喜欢就支持一下吧