当前位置: 代码迷 >> PHP >> PHP异趣开发一
  详细解决方案

PHP异趣开发一

热度:64   发布时间:2016-04-29 00:06:32.0
PHP趣味开发一

最近时间有些充裕,利用PHP实现了几个有意思的东东,拿来分享一下:

<?php /** * php画个菱形 *  * 思路:多少行for一次,然后在里面空格和标记符号for一次。 *  * @author flyer0126 * @date 2011-12-09 *  *///上半部分for ($i=0; $i<10; $i++){	for ($j=0; $j<9-$i; $j++){		echo "&nbsp;";	}	for ($k=0; $k<(2*$i+1); $k++){		echo "`";	}	echo "<br/>";}//下半部分for ($i=1; $i<10; $i++){	for ($j=0; $j<$i; $j++){		echo "&nbsp;";	}	for ($k=(18-2*$i+1); $k>0; $k--){		echo "`";	}	echo "<br/>";}/** * PHP实现杨辉三角 *  * 思路:每一行的第一位和最后一位是1,没有变化,中间是前排一位与左边一排的和,这种算法是用一个二维数组保存,一行一行的输出。 * 1   1 1   1 2 1   1 3 3 1   1 4 6 4 1   1 5 10 10 5 1 * * @author flyer0126 * @date 2011-12-09 *  *///变量初始化$arr = array();//设置固定值1for ($i=0; $i<6; $i++){	$arr[$i][0] = 1;	$arr[$i][$i] = 1;}//计算中间值for ($i=2; $i<6; $i++){	for ($j=1; $j<$i; $j++){		$arr[$i][$j] = $arr[$i-1][$j-1] + $arr[$i-1][$j];	}}//排列输出展示for ($i=0; $i<count($arr); $i++){	for ($j=0; $j<count($arr[$i]); $j++){		echo $arr[$i][$j]."&nbsp;";	}	echo "<br/>";}/** * 在一组数中,要求插入一个数,按其原来顺序插入,维护原来排序方式。 *  * 思路:找到比要插入数大的那个位置,替换,然后把后面的数后移一位。 *  * @author flyer0126 * @date 2011-12-08 *  *///初始化数组变量(升序)$arr = array(1, 3, 5, 7, 9);//插入6for ($i=0; $i<count($arr); $i++){	if($arr[$i] < 6 && 6 < $arr[$i+1]){		$tmp1 = $arr[$i+1];		$k = count($arr)+1;		$arr[$i+1] = 6;		for ($j=$i+2; $j<$k; $j++){			($k > $j+1) ? $tmp2 = $arr[$j] : '';			$arr[$j] = $tmp1;			$tmp1 = $tmp2;		}		break;	}	}//输出print_r($arr);//Array ( [0] => 1 [1] => 3 [2] => 5 [3] => 6 [4] => 7 [5] => 9 ) ?>
  相关解决方案