当作为一名php 程序猿,每天总与数据库打交道,做着最底层的程序猿的工作,開始着手研究一些算法,希望自己能在计算机的道路上走的更远。事实上我更喜欢管理,希望自己能作为一个卓越的管理者,但并不影响我对技术的追求。
*
********
*******
*********
***********
上图php代码例如以下
<?php for($i=1;$i<=6;$i++){ for($z=5;$z>=$i;$z--){ echo " "; } for($j=1;$j<=2*$i-1;$j++){ echo "*"; } echo "<br/>"; }
二.用PHP 写杨辉三角。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
如上图 :
<?php for($i = 0; $i < 10; $i ++) { for($z = 9; $z >= $i; $z --) { echo " "; } for($j = 0; $j <= $i; $j ++) { if($j==0 || $j==$i){ $newarray[$i][$j]=1; }else{ $newarray[$i][$j]=$newarray[$i-1][$j]+$newarray[$i-1][$j-1]; } echo $newarray[$i][$j]." "; } echo "<br/>"; }
简单思路:
1.首先杨辉三角初始模型应该例如以下图
1
1 1
1 1 1
1 1 1 1
1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
上图的形式应该非常好表示的,依据菱形的特定去考虑。两个for 循环就搞定了。
由由于向数组,把它存在数组里,在显示出来,就能够了。
<?php /** * @author lxy * 在一组数中,要求插入一个数,按其原来顺序插入,维护原来排序方式。 * 首先须要说明的是用户给定的数组是要有一定顺序的。如升序或降序 * 不能用排序函数如sort等 */ class insertvalue { private function __construct() { } /** * 推断是升序还是降序 * 由于数组是有顺序的所以能够这样处理 * 可是要保证键名必须从 0 開始 * 保证数组数据没有反复的值, */ private static function judgesort($array) { $flg = ''; $countarray = count ( $array ); $newarray = array_unique ( $array ); $newarray = array_values ( $newarray ); // 保证键值都是从0,1,2開始的 $n = count ( $newarray ); if (count ( $newarray ) == 1) { $flg = 0; } else { for($i = 0; $i < $n; $i ++) { if ($newarray [$i] < $newarray [$i + 1]) { $flg = 1; break; } else { $flg = - 1; break; } } } return $flg; } /** * 插入元素 */ private static function insertvalue($val, $array) { $flg = self::judgesort ( $array ); $n = count ( $array ); // 升序 if ($flg == 1) { if ($val > $array [count ( $array ) - 1]) { $array [count ( $array ) + 1] = $val; return $array; } for($i = 0; $i < $n; $i ++) { if ($array [$i] >= $val) { $t1 = $array [$i]; $array [$i] = $val; for($j = $i + 1; $j <= $n; $j ++) { $t2 = $array [$j]; $array [$j] = $t1; $t1 = $t2; } return $array; } } } // 降序 if ($flg == - 1) { if ($val <= $array [$n - 1]) { $array [$n] = $val; return $array; } for($i = 0; $i < $n; $i ++) { if ($val >= $array [$i]) { $t3 = $array [$i]; $array [$i] = $val; for($j = $i + 1; $j <= $n; $j ++) { $t4 = $array [$j]; $array [$j] = $t3; $t3 = $t4; } return $array; } } } if ($flg == 0) { $array [$n] = $val; return $array; } } /** * 入口文件 */ public static function main($val, $array) { $newarray = insertvalue::insertvalue ( $val, $array ); return $newarray; } } $a = 6; $array = array ( 1, 1, 1, 1, 1, 9 ); $newarray = insertvalue::main ( $a, $array ); var_dump ( $newarray );
<?php /** *通过hash 比較两个数组同样的数 */ $arr=array(a,b,c,d,f); $towarr=array(a,c,d); $same=array(); $newarray=array(); foreach($arr as $val){ $newarray[$val]=1; } foreach ($towarr as $value){ if($newarray[$value]==1){ $same[]=$value; } }
<?php /** * 合并多个数组,不用array_merge(),题目来于论坛。 */ header("Content-type:text/html;charset='utf-8'"); function conjunctionarray() { $newarray = array (); $num = func_num_args (); //函数參数的个数 $valarray = func_get_args (); //參数列表 for($i = 0; $i < $num; $i ++) { if (is_array ( $valarray [$i] )) { $newarray [] = $valarray [$i]; } else { exit ( $valarray [$i] . '不是数组' ); } } return $newarray; } $a = array ( 1, 2, 3 ); $b = array(3); print_r ( conjunctionarray ( $a, $b ) );