background image

1、首先来画个菱形玩玩,很多人学 C 时在书上都画过,咱们用 PHP 画下,画了一半。
思路:多少行

for 一次,然后在里面空格和星号 for 一次。

<?php
for($i=0;$i<=3;$i++){

  for($j=0;$j<=3-$i;$j++){
  echo '&nbsp;';  

  }
  for($k=0;$k<=2*$i;$k++){

  echo '*';  
  }

  echo '<br/>';  
}

2、冒泡排序,C 里基础算法,从小到大对一组数排序。

……

思路:这题从小到大,第一轮排最小,第二轮排第二小,第三轮排第三小,依次类推
<?php

$arr = array(3, 2, 1);
$n = count($arr);

//每循环一次,就跑一趟后面的排序
for($j=0; $j<$n-1; $j++) {

//对后面没排好的,循环查找出最大(最小)的,进行一趟排序
  for($i=$j; $i<$n-1; $i++) {

  if($arr[$j] > $arr[$i+1]) {
  $t = $arr[$j];

  $arr[$j] = $arr[$i+1];
  $arr[$i+1] = $t;

  }
  }

}
print_r($arr);

3、杨辉三角,用 PHP 写。
思路:每一行的第一位和最后一位是

1,没有变化,中间是前排一位与左边一排的和,这种算法是用一个二维数组

保存,另外有种算法用一维数组也可以实现,一行一行的输出,有兴趣去写着玩下。
1

1 1
1 2 1

1 3 3 1
1 4 6 4 1

1 5 10 10 5 1
<?php

//每行的第一个和最后一个都为 1,写了 6 行
  for($i=0; $i<6; $i++) {

  $a[$i][0]=1;
  $a[$i][$i]=1;

  }
//出除了第一位和最后一位的值,保存在数组中

  for($i=2; $i<6; $i++) {
  for($j=1; $j<$i; $j++) {

  $a[$i][$j] = $a[$i-1][$j-1]+$a[$i-1][$j];
  }

  }
//打印

  for($i=0; $i<6; $i++){
  for($j=0; $j<=$i; $j++) {

  echo $a[$i][$j].'&nbsp;';
  }